Получение IP-адреса текущей машины с помощью Java

Я пытаюсь разработать систему, в которой разные узлы работают в разных системах или на разных портах одной и той же системы.

Теперь все узлы создают Socket с целевым IP-адресом в качестве IP-адреса специального узла, известного как узел начальной загрузки. Затем узлы создают свой собственный ServerSocket и начинают прослушивать соединения.

Узел начальной загрузки поддерживает список узлов и возвращает их при запросе.

Теперь мне нужно, чтобы узел зарегистрировал свой IP в узле начальной загрузки. Я попытался использовать cli.getInetAddress () после того, как клиент подключился к ServerSocket узла начальной загрузки, но это не сработало.

  1. Мне нужно, чтобы клиент зарегистрировал свой PPP IP, если он доступен;
  2. В противном случае IP LAN, если он доступен;
  3. В противном случае он должен зарегистрировать 127.0.0.1, если это тот же компьютер.

Использование кода:

System.out.println(Inet4Address.getLocalHost().getHostAddress());

или

System.out.println(InetAddress.getLocalHost().getHostAddress());

Мой IP-адрес PPP-соединения: 117.204.44.192, но приведенное выше возвращает мне 192.168.1.2

ИЗМЕНИТЬ

Я использую следующий код:

Enumeration e = NetworkInterface.getNetworkInterfaces();
while(e.hasMoreElements())
{
    NetworkInterface n = (NetworkInterface) e.nextElement();
    Enumeration ee = n.getInetAddresses();
    while (ee.hasMoreElements())
    {
        InetAddress i = (InetAddress) ee.nextElement();
        System.out.println(i.getHostAddress());
    }
}

Я я могу получить все IP-адреса, связанные со всеми NetworkInterface s, но как их отличить? Вот результат, который я получаю:

127.0.0.1
192.168.1.2
192.168.56.1
117.204.44.19
273
задан halfer 10 April 2017 в 22:38
поделиться

1 ответ

Он получает IP-адрес вашей сети, если ваш компьютер является частью сети

try {
    System.out.println(InetAddress.getLocalHost().getHostAddress());
} catch (UnknownHostException e) {
    e.printStackTrace();
}
1
ответ дан 23 November 2019 в 02:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: