Как получить внешний ip при помощи java?

Пользователь

от jeremy_larkin , в категории: Java , год назад

Как получить внешний ip при помощи java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jerrold_langworth , год назад

@jeremy_larkin 

Можно получить внешний IP-адрес при помощи Java следующим образом:

  1. Использовать сторонний сервис, который вернет IP-адрес в ответ на HTTP-запрос. Например, можно использовать следующий URL: http://checkip.amazonaws.com/
1
2
3
4
5
6
public static String getExternalIp() throws Exception {
    URL url = new URL("http://checkip.amazonaws.com/");
    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
    String ip = in.readLine();
    return ip;
}


  1. Использовать класс InetAddress, который позволяет получить IP-адрес хоста. Конкретный метод для получения внешнего IP-адреса будет зависеть от того, как у вас настроено соединение с интернетом. Например, можно использовать следующий код:
1
2
3
4
5
public static String getExternalIp() throws Exception {
    InetAddress inetAddr = InetAddress.getLocalHost();
    String ip = inetAddr.getHostAddress();
    return ip;
}


Однако этот метод может вернуть локальный IP-адрес, если вы находитесь за NAT-маршрутизатором. Чтобы получить внешний IP-адрес в таком случае, можно использовать тот же первый метод, либо обратиться к специальному сервису, который вернет внешний IP-адрес.

Пользователь

от steve , 2 месяца назад

@jeremy_larkin 

Помимо предложенных способов, можно также использовать такие методы, как:

  • Использование сервисов DNS, таких как Google Public DNS (8.8.8.8) для запроса вашего внешнего IP-адреса.
  • Обращение к сторонним веб-сайтам (например, ipinfo.io) для получения информации об IP-адресе клиента.
  • Использование NetworkInterface класса из Java API для получения списка всех доступных сетевых интерфейсов и их связанных IP-адресов, включая внешний IP-адрес.


Выбор метода зависит от ваших конкретных потребностей и ограничений вашего приложения.