如何使用VB.NET区分以太网和WiFi IP地址
我正在尝试开发一个基于VB.NET的通用应用程序,它将返回本地机器的以太网IP地址。我提到了这里讨论的几个关于获取机器IP地址的问题,并找到了一些好的建议 我面临的问题是,当我运行此应用程序时,它会返回WiFi和以太网的IP地址。当我在别人的机器上运行这个应用程序时,我无法判断哪个IP地址属于哪个接口。我只对以太网IP地址感兴趣 有什么建议吗 下面是返回IP地址列表的函数如何使用VB.NET区分以太网和WiFi IP地址,vb.net,wifi,ip-address,ethernet,Vb.net,Wifi,Ip Address,Ethernet,我正在尝试开发一个基于VB.NET的通用应用程序,它将返回本地机器的以太网IP地址。我提到了这里讨论的几个关于获取机器IP地址的问题,并找到了一些好的建议 我面临的问题是,当我运行此应用程序时,它会返回WiFi和以太网的IP地址。当我在别人的机器上运行这个应用程序时,我无法判断哪个IP地址属于哪个接口。我只对以太网IP地址感兴趣 有什么建议吗 下面是返回IP地址列表的函数 Function getIP() As String Dim ips As System.Net.IPHostEn
Function getIP() As String
Dim ips As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName)
For Each ip In ips.AddressList
If (ip.AddressFamily = System.Net.Sockets.AddressFamily.InterNetwork) Then
MessageBox.Show(ip.ToString)
Return ip.ToString
End If
Next
Return Nothing
End Function
您可以通过网络适配器枚举IP地址,然后从每个适配器获取IP地址,而不是通过
iphonestry
A通过NetworkInterfaceType
属性提供其类型。对于以太网适配器,这将返回以太网
。对于无线适配器,文档没有指定,但它为我返回了Wireless8021
示例代码:
Imports System.Net.NetworkInformation
Public Class Sample
Function GetIP() As String
Dim networkInterfaces() As NetworkInterface
networkInterfaces = NetworkInterface.GetAllNetworkInterfaces()
For Each networkInterface In networkInterfaces
If networkInterface.NetworkInterfaceType = NetworkInterfaceType.Ethernet Then
For Each address In networkInterface.GetIPProperties().UnicastAddresses
If address.Address.AddressFamily = Net.Sockets.AddressFamily.InterNetwork Then
Return address.Address.ToString()
End If
Next address
End If
Next networkInterface
Return Nothing
End Function
End Class
或者,如果您想要更简洁的版本,可以使用LINQ(相当于上面的代码):
您是否有任何代码可以让我们了解您是如何接收和操纵它们的?太好了!!这正是我想要的。。非常感谢康斯坦德!!!:):)
Function GetIP() As String
Return (
From networkInterface In networkInterface.GetAllNetworkInterfaces()
Where networkInterface.NetworkInterfaceType = NetworkInterfaceType.Ethernet
From address In networkInterface.GetIPProperties().UnicastAddresses
Where address.Address.AddressFamily = Net.Sockets.AddressFamily.InterNetwork
Select ip = address.Address.ToString()
).FirstOrDefault()
End Function