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

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

от jeremy_larkin , в категории: Java , 4 месяца назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от jerrold_langworth , 4 месяца назад

@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-адрес.