获取IP地址方法整理(C

梦幻独角兽 2024-08-17 ⋅ 13 阅读

在C#开发中,我们经常需要获取本地机器的IP地址。本文将整理C#中获取IP地址的方法,并且详细介绍如何获取IPv4和IPv6地址。

获取IPv4地址

方法一:使用Dns.GetHostEntry方法

using System.Net;

string hostname = Dns.GetHostName();
IPHostEntry ipEntry = Dns.GetHostEntry(hostname);
IPAddress[] addresses = ipEntry.AddressList;

foreach (IPAddress address in addresses)
{
    if (address.AddressFamily == AddressFamily.InterNetwork)  // IPv4地址
    {
        Console.WriteLine(address.ToString());
    }
}

方法二:使用NetworkInterface

using System.Net.NetworkInformation;

foreach (NetworkInterface networkInterface in NetworkInterface.GetAllNetworkInterfaces())
{
    if (networkInterface.OperationalStatus == OperationalStatus.Up)
    {
        IPInterfaceProperties ipProperties = networkInterface.GetIPProperties();

        foreach (UnicastIPAddressInformation ipAddress in ipProperties.UnicastAddresses)
        {
            if (ipAddress.Address.AddressFamily == AddressFamily.InterNetwork)  // IPv4地址
            {
                Console.WriteLine(ipAddress.Address.ToString());
            }
        }
    }
}

获取IPv6地址

方法一:使用Dns.GetHostEntry方法

using System.Net;

string hostname = Dns.GetHostName();
IPHostEntry ipEntry = Dns.GetHostEntry(hostname);
IPAddress[] addresses = ipEntry.AddressList;

foreach (IPAddress address in addresses)
{
    if (address.AddressFamily == AddressFamily.InterNetworkV6)  // IPv6地址
    {
        Console.WriteLine(address.ToString());
    }
}

方法二:使用NetworkInterface

using System.Net.NetworkInformation;

foreach (NetworkInterface networkInterface in NetworkInterface.GetAllNetworkInterfaces())
{
    if (networkInterface.OperationalStatus == OperationalStatus.Up)
    {
        IPInterfaceProperties ipProperties = networkInterface.GetIPProperties();

        foreach (UnicastIPAddressInformation ipAddress in ipProperties.UnicastAddresses)
        {
            if (ipAddress.Address.AddressFamily == AddressFamily.InterNetworkV6)  // IPv6地址
            {
                Console.WriteLine(ipAddress.Address.ToString());
            }
        }
    }
}

以上方法可以获取到当前机器的IPv4和IPv6地址。通过使用不同的方法,您可以根据自己的需求选择适合的获取IP地址的方法。

希望本文对您有所帮助!如有任何疑问或建议,请在评论区留言。感谢阅读!


全部评论: 0

    我有话说: