📅  最后修改于: 2023-12-03 14:39:47.702000             🧑  作者: Mango
在C#中,我们可以使用System.Net.NetworkInformation命名空间下的NetworkInterface类获取计算机的网络接口信息,从而获取WiFi IP地址。
首先,我们需要引用System.Net.NetworkInformation命名空间,代码如下:
using System.Net.NetworkInformation;
接下来,我们可以使用NetworkInterface类的GetAllNetworkInterfaces方法获取计算机的所有网络接口,代码如下:
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
在这个数组中,我们可以通过循环遍历来找到我们需要的WiFi接口,其interfaceType属性为Wireless80211。代码如下:
foreach (NetworkInterface inter in interfaces)
{
if (inter.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 &&
inter.OperationalStatus == OperationalStatus.Up)
{
//找到WiFi接口
}
}
接下来,我们可以使用NetworkInterface类的GetIPProperties方法获取WiFi接口的IP配置信息,并从中获取IP地址。代码如下:
IPInterfaceProperties properties = inter.GetIPProperties();
IPAddress ipAddress = properties.UnicastAddresses.FirstOrDefault(i => i.Address.AddressFamily == AddressFamily.InterNetwork)?.Address;
最终,我们可以获得WiFi IP地址,代码如下:
string wifi_ip = ipAddress.ToString();
完整代码如下:
using System.Net.NetworkInformation;
using System.Net.Sockets;
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface inter in interfaces)
{
if (inter.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 &&
inter.OperationalStatus == OperationalStatus.Up)
{
IPInterfaceProperties properties = inter.GetIPProperties();
IPAddress ipAddress = properties.UnicastAddresses.FirstOrDefault(i => i.Address.AddressFamily == AddressFamily.InterNetwork)?.Address;
if (ipAddress != null)
{
string wifi_ip = ipAddress.ToString();
Console.WriteLine("WiFi IP地址:" + wifi_ip);
}
}
}
以上代码会输出当前连接的WiFi IP地址。