2017-01-05 3 views
2

У меня есть этот код:Получить IP и имя компьютера

localIp = Request.UserHostName 
hostName = DetermineCompName(localIp) 

Session.Add("localIp", localIp) 
Session.Add("hostName", hostName) 

Как вы можете видеть, я поставил 2 переменные на сессии, так что я могу использовать его, когда я хочу. Тестируя приложение на 10 компьютерах, я увидел, что на некоторых компьютерах он получает IP-адрес клиента и имя компьютера, а на других он пуст.

Как и на некоторых компьютерах, это работает, я не понимаю, что случилось. Кто-нибудь имеет правильный метод для этого?

+0

для имени хоста машины я использовал:. System.Net.Dns.GetHostEntry (Request.ServerVariables ("remote_addr")) HostName при условии, что это ASP? Для IP я думаю - Dim h As String = System.Net.Dns.GetHostEntry (Request.ServerVariables ("remote_addr")). AddressList (0)? –

ответ

2

Чтобы получить имя компьютера вы можете просто сделать:

Dim hostName As String = Environment.MachineName 

или:

Dim hostName As String = My.Computer.Name 

Для IP это немного сложнее, я предполагаю, что вы хотите ipv4, так что вы можете попробовать это:

Dim localIp As String 
For Each address As System.Net.IPAddress In System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList 
    If address.AddressFamily = Net.Sockets.AddressFamily.InterNetwork Then 
     localIp = address.ToString() 
     Exit For 
    End If 
Next 

Пожалуйста, обратите внимание, что если вы просто:

System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList(0).ToString() 

тогда это вернет ipV6.

+0

спасибо. я попробую и дам вам знать результат – rchongo

Смежные вопросы