Я рекомендую использовать http://ip -api.com / docs / api: newline_separated
Затем вы можете выбрать, какая информация вам нужна, и создать свою HTTP-ссылку, например:
http://ip -api.com / линия / 8.8.8.8? Поля = 49471
Результат в этом примере будет:
success
United States
US
VA
Virginia
Ashburn
20149
America/New_York
Таким образом, вы можете создать метод в Java для чтения HTTP и разделить его на \n
, чтобы получить строки:
private void whatever(String ip) {
String ipinfo = getHttp("http://ip-api.com/line/" + ip + "?fields=49471");
if (ipinfo == null || !ipinfo.startsWith("success")) {
// TODO: failed
return;
}
String[] lines = ipinfo.split("\n");
// TODO: now you can get the info
String country = lines[1];
/*
...
*/
}
private static String getHttp(String url) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(new URL(url).openStream()));
String line;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line).append(System.lineSeparator());
}
br.close();
return sb.toString();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
только убедитесь, что не создаете много запросов за короткое время, так как ip-api.com забанит вас за это.