目前我使用以下代码检索本地工作站的IP地址......
strIPAddress = System.Net.Dns.GetHostEntry(strComputerName).AddressList(0).ToString()
这适用于Windows XP工作站。但是,在Vista和Windows 7中,这将返回根本不使用的IPv6地址。 是否有一种方法可以设置此功能,因此无论平台如何,它都会返回IPv4地址?
我知道我可以将AddressList值增加到1并在Windows 7中获得正确的IP。不好的部分是,这需要通过识别操作系统并选择其中一个的动作。
必须以某种方式指定IPv4。也许从网络上的DNS而不是工作站本身获得结果?
答案 0 :(得分:3)
您只需循环查看AddressList
查看设置为AddressFamily
的{{1}}
InterNetwork
或更长的路:
Dim IP4 = New List(Of IPAddress)(Dns.GetHostEntry(strComputer).AddressList).Find(Function(f) f.AddressFamily = Sockets.AddressFamily.InterNetwork)