获取IP和计算机名称

时间:2017-01-05 13:40:16

标签: vb.net hostname

我有这段代码:

localIp = Request.UserHostName
hostName = DetermineCompName(localIp)

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

正如您所看到的,我将2个变量放在会话上,以便我可以在需要时使用它。在10台计算机上测试应用程序,我在某些计算机上看到它获取了客户端IP和计算机名称,但在其他计算机上则显示为空。

正如在某些计算机上工作一样,我不明白什么是错的。有没有人有正确的方法来做到这一点?

1 个答案:

答案 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。