Получить IP-адрес удаленного клиента без ввода DNS в VB.Net
У меня есть приложение Windows Forms, работающее на терминальном сервере. Мне нужно определить IP-адреса каждой клиентской машины.
Я нашел способ получить IP-адрес для компьютеров с записями DNS (пример ниже), но некоторые из моих тонких клиентов были настроены на использование статических IP-адресов и не имели имени DNS. Есть ли способ определить IP-адрес удаленного клиента без DNS-имени?
Dim clientName As String = My.Computer.Network.ClientName
Dim IPHost As Net.IPHostEntry = Net.Dns.Resolve(clientName & "domain.com")
Dim addresses As Net.IPAddress() = IPHost.AddressList
fullIP = addresses(0).ToString()
1 ответ
Чтобы получить основной IP-адрес, вы можете использовать:
System.Net.Dns.GetHostEntry("").AddressList(0).ToString
Это может вернуть адрес IP6, и в этом случае вы можете попытаться найти IP4, используя:
Dim ipentry As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry("")
For i As Integer = 0 To ipentry.AddressList.Count - 1
MsgBox(System.Net.Dns.GetHostEntry("").AddressList(i).ToString)
Next