44 lines
1.8 KiB
Java
44 lines
1.8 KiB
Java
package shine.geo;
|
||
|
||
/**
|
||
* Тестовый запуск геолокации.
|
||
*.
|
||
* Логика:
|
||
* 1) Если в args[0] передан IP — используем его.
|
||
* 2) Иначе пробуем узнать внешний IP текущей машины.
|
||
* 3) Если не удалось — берём константу TEST_IP.
|
||
* 4) Вызываем GeoLookupService.resolveCountryCityOrIp(...) и печатаем результат.
|
||
*/
|
||
public class GeoLookupTestMain {
|
||
|
||
// Константа на случай, если не удалось узнать внешний IP.
|
||
private static final String TEST_IP = "8.8.8.8";
|
||
|
||
public static void main(String[] args) {
|
||
String ip;
|
||
|
||
if (args.length > 0 && args[0] != null && !args[0].isBlank()) {
|
||
ip = args[0].trim();
|
||
System.out.println("Используем IP из аргумента: " + ip);
|
||
} else {
|
||
// Пытаемся узнать внешний IP
|
||
String detectedIp = GeoLookupService.fetchPublicIpOrDefault(TEST_IP);
|
||
if (TEST_IP.equals(detectedIp)) {
|
||
System.out.println("Не удалось определить внешний IP, используем тестовый: " + TEST_IP);
|
||
} else {
|
||
System.out.println("Определён внешний IP: " + detectedIp);
|
||
}
|
||
ip = detectedIp;
|
||
}
|
||
|
||
// Замер времени
|
||
long start = System.currentTimeMillis();
|
||
String result = GeoLookupService.resolveCountryCityOrIp(ip);
|
||
long end = System.currentTimeMillis();
|
||
long duration = end - start;
|
||
|
||
System.out.println("Результат геолокации: " + result);
|
||
System.out.println("Время ответа геолокации: " + duration + " мс");
|
||
}
|
||
}
|