Получение IP-адреса с использованием имени хоста устройства, подключенного к Ethernet - PullRequest
0 голосов
/ 28 августа 2018

Я использую подключенное к Ethernet устройство под управлением Ubuntu 16.04 с именем хоста rp-f00e98. Когда я подключаю его к своей сети, он получает IP-адрес 192.168.0.180. Когда я подключаю его напрямую к моему компьютеру (без другого сетевого подключения), он получает IP-адрес 169.254.149.60.

Я могу открыть окно браузера и подключиться к нему, используя rp-f00e98.local и соответствующий IP-адрес (в зависимости от соединения) в адресной строке. Из командной строки (windows 10) я могу пропинговать его, используя соответствующий IP-адрес. При попытке пропинговать его, используя rp-f00e98 или rp-f00e98.local, я получаю «В результате запроса Ping не удалось найти хост rp-f00e98 ...» в обоих случаях.

При использовании .NET Framework в LabView 2017: Используя класс Ping в методе System.Net.NetworkInformation, Send(string), я получаю статус PingReply Success при использовании IP-адресов, но исключение ( System.Net.Sockets.SocketException) при использовании имени хоста.

Я попытался использовать метод Dns.GetHostEntry(string) в System.Net, который, кажется, работает в системе, подключенной к сети (возвращает IP-адрес 192.168.0.180) при отправке rp-f00e98. Однако при использовании в системе с прямым подключением он все равно каким-либо образом возвращает 192.168.0.180, даже если компьютер не подключен к какой-либо сети, а только напрямую подключен к устройству. arp -a в командной строке подтверждает, что нет 192.168.0.180, и компьютер подключен только к 169.254.149.60.

Итог: мне нужно иметь возможность использовать имя хоста для получения IP-адреса. Есть ли другой метод .NET для использования? Поскольку мой браузер всегда может найти его по имени хоста, как он это делает? Есть еще идеи?

...