#c #linux #networking
#c #linux #сеть
Вопрос:
Если я использую getHostByName()
, я получаю только «127.0.0.1», потому что он записан в / etc / host, но для меня это бесполезно.
Однако, со следующим Java-кодом я действительно получаю то, что хочу:
NetworkInterface.getByName(("eth0")).getInetAddresses().nextElement().getHostAddress()
Я думаю, что есть способ получить тот же ip-адрес также из C?
Ответ №1:
Проверьте getifaddrs
.
Ответ №2:
Это указывает на пресловутую проблему неправильной настройки Linux / etc / hosts. Файл hosts должен сопоставить 127.0.0.1 с localhost, а ваш реальный IP-адрес — с вашим реальным именем хоста.
Комментарии:
1. Но это бесполезно для ноутбуков, поскольку у вас может не быть постоянного реального IP-адреса. Сопоставление имени с локальной обратной связью удовлетворяет некоторым инструментам, которым необходимо его найти, и работает везде. Так что это предпочтительнее для ноутбуков, если только вам не нравится редактировать свой / etc / hosts каждый раз, когда вы перемещаетесь.