我在尝试在VB.Net中获取机器的正确IPv4时遇到问题,我有以下代码:
Private Function GetIPv4Address() As String
GetIPv4Address = String.Empty
Dim HostName As String = System.Net.Dns.GetHostName()
Dim ip As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(HostName)
For Each iph As System.Net.IPAddress In ip.AddressList
If iph.AddressFamily = System.Net.Sockets.AddressFamily.InterNetwork Then
GetIPv4Address = iph.ToString()
End If
Next
End Function
这在连接了单个IP的计算机上效果很好,但是当我尝试在具有多个IP的计算机上使用此代码时,无论我的主IP是哪个,这都给了我第一个。
要更清楚:
如果我的IP是192.168.1.15,并且我添加了(出于外部连接目的)192.168.1.14和192.168.1.200,则代码始终会给我192.168.1.14。
我该如何解决?
该代码应该在具有多个IP的几台不同计算机上运行。
谢谢大家。