📜  获取当前计算机 ipv4 C# (1)

📅  最后修改于: 2023-12-03 15:41:28.193000             🧑  作者: Mango

获取当前计算机 IPv4 地址 - C#

简介

当我们需要获取当前计算机的 IPv4 地址时,可以使用 C# 中的 NetworkInterface 类和 IPAddress 类。这两个类可以帮助我们获取当前计算机的网络接口和 IP 地址信息。

获取当前计算机的 IP 地址

我们可以通过以下代码获取当前计算机的 IPv4 地址:

using System.Net.NetworkInformation;
using System.Net.Sockets;

public static string GetIPv4Address()
{
    string ipv4Address = "";
    foreach (NetworkInterface networkInterface in NetworkInterface.GetAllNetworkInterfaces())
    {
        // 排除非以太网接口和虚拟机接口
        if (networkInterface.NetworkInterfaceType != NetworkInterfaceType.Ethernet && networkInterface.NetworkInterfaceType != NetworkInterfaceType.GigabitEthernet
            && networkInterface.NetworkInterfaceType != NetworkInterfaceType.Wireless80211 && !networkInterface.Name.Contains("VirtualBox"))
        {
            continue;
        }

        foreach (UnicastIPAddressInformation ipAddress in networkInterface.GetIPProperties().UnicastAddresses)
        {
            if (ipAddress.Address.AddressFamily == AddressFamily.InterNetwork)
            {
                ipv4Address = ipAddress.Address.ToString();
                break;
            }
        }

        if (!string.IsNullOrEmpty(ipv4Address))
        {
            break;
        }
    }

    return ipv4Address;
}

该方法在 NetworkInterface.GetAllNetworkInterfaces() 方法返回的所有网络接口中,查找网络接口类型为以太网、千兆以太网、无线网络和不包含 "VirtualBox" 关键字的虚拟机接口,并在这些网络接口的 IP 属性信息中查找 IPv4 地址。

测试

我们可以在 C# 程序中使用以下代码测试我们的 GetIPv4Address 方法:

string ipv4Address = GetIPv4Address();
Console.WriteLine("IPv4 Address: " + ipv4Address);

输出结果可能类似于以下内容:

IPv4 Address: 192.168.1.100
总结

这样,我们就可以通过 C# 程序获取当前计算机的 IPv4 地址了。需要注意的是,我们的代码可能会在某些情况下过滤掉某些接口或者无法找到 IPv4 地址,因此需要根据实际情况进行调整。