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 + " мс"); } }