VB.net中的IP地址查找(XP vs Windows 7)

时间:2010-03-30 14:59:48

标签: vb.net windows-7 windows-xp ip-address

目前我使用以下代码检索本地工作站的IP地址......

strIPAddress = System.Net.Dns.GetHostEntry(strComputerName).AddressList(0).ToString()

这适用于Windows XP工作站。但是,在Vista和Windows 7中,这将返回根本不使用的IPv6地址。 是否有一种方法可以设置此功能,因此无论平台如何,它都会返回IPv4地址?

我知道我可以将AddressList值增加到1并在Windows 7中获得正确的IP。不好的部分是,这需要通过识别操作系统并选择其中一个的动作。

必须以某种方式指定IPv4。也许从网络上的DNS而不是工作站本身获得结果?

1 个答案:

答案 0 :(得分:3)

您只需循环查看AddressList查看设置为AddressFamily的{​​{1}}

InterNetwork

或更长的路:

Dim IP4 = New List(Of IPAddress)(Dns.GetHostEntry(strComputer).AddressList).Find(Function(f) f.AddressFamily = Sockets.AddressFamily.InterNetwork)