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

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

C# 获取 PC IP 地址

在 C# 中获取 PC 的 IP 地址可以使用 System.Net 命名空间中的一些类来实现。本文将介绍如何使用 C# 来获取 PC 的 IP 地址。

使用 Dns.GetHostEntry 方法获取 IP 地址
using System.Net;

IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());

foreach (IPAddress ip in host.AddressList)
{
    // 判断是否为 IPv4 IP 地址
    if (ip.AddressFamily == AddressFamily.InterNetwork)
    {
        Console.WriteLine(ip.ToString());
    }
}

以上代码使用了 GetHostEntry 方法来获取计算机的主机名,然后使用 AddressList 属性获取 IP 地址列表,并逐一遍历列表中的地址。其中,AddressFamily 属性可以用来判断地址类型,如果是 IPv4 地址,就打印出来。

使用 NetworkInterface 类获取 IP 地址
using System.Net.NetworkInformation;

foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
{
    // 判断是否为以太网或无线局域网
    if ((ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet ||
         ni.NetworkInterfaceType == NetworkInterfaceType.Wireless80211) &&
         ni.OperationalStatus == OperationalStatus.Up)
    {
        foreach (var ip in ni.GetIPProperties().UnicastAddresses)
        {
            // 判断是否为 IPv4 地址
            if (ip.Address.AddressFamily == AddressFamily.InterNetwork)
            {
                Console.WriteLine(ip.Address.ToString());
            }
        }
    }
}

以上代码使用了 NetworkInterface 类来获取计算机的网络接口信息,并遍历每个网络接口的 IP 地址列表。其中,UnicastAddresses 是 IP 地址列表,AddressFamily 和上面的方法一样,用来判断地址类型。

总结

以上两种方法都可以用来获取 PC 的 IPv4 地址。使用 Dns.GetHostEntry 方法可以获取计算机的主机名,然后在 AddressList 中遍历 IPv4 地址。而使用 NetworkInterface 类则可以获取计算机的网络接口信息,然后在 UnicastAddresses 中遍历 IPv4 地址。两种方法各有优缺点,开发者可以根据具体需求选择使用。