В системе с несколькими сетевыми картами IP-адрес системного сетевого адаптера возвращается InetAddress.getByName (hostname) - PullRequest
0 голосов
/ 05 июня 2019

У меня есть система с несколькими сетевыми картами, где NIC_1 (общедоступная сеть), NIC_2 (частная сеть) связаны с IP_1, IP_2 соответственно.Используя системное имя хоста, я попытался получить системный IP-адрес, используя InetAddress.getByName (имя хоста), и обнаружил, что InetAddress.getByName (имя хоста) возвращает частный IP-адрес IP_2, когда я ожидал, что он вернет публичный IP-адрес IP_1.DNS не настроен, и, поскольку я запускаю этот код локально в системе, как InetAddress.getByName (имя хоста) решает, какой IP выбрать в системе с несколькими сетевыми платами?Я проверил документы API Java для InetAddress, но не смог найти никакой информации о сценарии с несколькими сетевыми картами для этого метода.Как при вызове метода выбирается частный IP-адрес, а не публичный IP-адрес?Если DNS НЕ настроен , как InetAddress.getByName (имя хоста) решает, какой IP-адрес системы вернуть?

1 Ответ

0 голосов
/ 06 июня 2019

вы получите первую подходящую запись из вашего файла / etc / hosts

...