📜  c# 获取 wifi ip 地址 - C# (1)

📅  最后修改于: 2023-12-03 14:39:47.702000             🧑  作者: Mango

C#获取WiFi IP地址

在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地址。