Java 通过IP获取地理位置(插口1.8和1.13.2)
我只想通过提供ip地址来确定地理位置。 我的目标是保存城市、国家、邮政编码和其他信息Java 通过IP获取地理位置(插口1.8和1.13.2),java,geolocation,minecraft,bukkit,Java,Geolocation,Minecraft,Bukkit,我只想通过提供ip地址来确定地理位置。 我的目标是保存城市、国家、邮政编码和其他信息 CraftPlayer cp = (CraftPlayer)p; String adress = cp.getAddress(); 只要使用ip就可以找到任何简短的可能性吗?有很多网站提供免费的ip地理定位数据库 例子包括: 在插件启动时,您可以下载其中一个数据库,然后在运行时在本地查询它 如果选择下载.bin格式,则必须初始化本地数据库,然后导入数据。否则,您可以将csv文件与Java库一起使用,如
CraftPlayer cp = (CraftPlayer)p;
String adress = cp.getAddress();
只要使用ip就可以找到任何简短的可能性吗?有很多网站提供免费的ip地理定位数据库 例子包括:
listbeans=newcsvtobeanbuilder(FileReader(“yourfile.csv”))
.withType(Visitors.class).build().parse();
文档链接:有很多网站提供免费的IP地理定位数据库 例子包括:
listbeans=newcsvtobeanbuilder(FileReader(“yourfile.csv”))
.withType(Visitors.class).build().parse();
文档链接:我建议使用
然后,您可以选择所需的信息并创建HTTP链接,如下所示:
本例中的结果是:
success
United States
US
VA
Virginia
Ashburn
20149
America/New_York
因此,您可以在Java中创建一个读取HTTP的方法,并在\n
处拆分它,以获得以下行:
private void whatever(字符串ip){
字符串ipinfo=getHttp(“http://ip-api.com/line/“+ip+”?字段=49471“;
if(ipinfo==null | |!ipinfo.startsWith(“成功”)){
//TODO:失败
返回;
}
字符串[]行=ipinfo.split(“\n”);
//托多:现在你可以得到信息了
字符串国家=行[1];
/*
...
*/
}
私有静态字符串getHttp(字符串url){
试一试{
BufferedReader br=新的BufferedReader(新的InputStreamReader(新的URL.openStream());
弦线;
StringBuilder sb=新的StringBuilder();
而((line=br.readLine())!=null){
sb.append(line.append(System.lineSeparator());
}
br.close();
使某人返回字符串();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
请确保不要在短时间内创建太多查询,因为ip-api.com会因此禁止您使用。我建议使用
然后,您可以选择所需的信息并创建HTTP链接,如下所示:
本例中的结果是:
success
United States
US
VA
Virginia
Ashburn
20149
America/New_York
因此,您可以在Java中创建一个读取HTTP的方法,并在\n
处拆分它,以获得以下行:
private void whatever(字符串ip){
字符串ipinfo=getHttp(“http://ip-api.com/line/“+ip+”?字段=49471“;
if(ipinfo==null | |!ipinfo.startsWith(“成功”)){
//TODO:失败
返回;
}
字符串[]行=ipinfo.split(“\n”);
//托多:现在你可以得到信息了
字符串国家=行[1];
/*
...
*/
}
私有静态字符串getHttp(字符串url){
试一试{
BufferedReader br=新的BufferedReader(新的InputStreamReader(新的URL.openStream());
弦线;
StringBuilder sb=新的StringBuilder();
而((line=br.readLine())!=null){
sb.append(line.append(System.lineSeparator());
}
br.close();
使某人返回字符串();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
请确保不要在短时间内创建太多的查询,因为ip-api.com会因此禁止您创建查询。使用类似这样的api:您想托管自己的本地数据库进行查询吗?如果是的话,你可以从yes下载并使用免费的数据库,托管自己的数据库就好了。ip2loc数据库看起来不错。是否有任何简单的可能性,仅通过提供ipv4从文件中返回信息?请使用类似这样的API:是否希望托管自己的本地数据库进行查询?如果是的话,你可以从yes下载并使用免费的数据库,托管自己的数据库就好了。ip2loc数据库看起来不错。是否有任何简单的可能性,仅通过提供ipv4从文件返回信息?