在VB.Net中获取正确的IPv4

时间:2018-12-17 14:19:59

标签: vb.net visual-studio ip ipv4

我在尝试在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的几台不同计算机上运行。

谢谢大家。

1 个答案:

答案 0 :(得分:0)

我认为您的答案就在这里,您只需要在地址列表中循环浏览

https://stackoverflow.com/a/11860141/1066191