📅  最后修改于: 2023-12-03 15:29:48.127000             🧑  作者: Mango
在 C# 中获取 PC 的 IP 地址可以使用 System.Net 命名空间中的一些类来实现。本文将介绍如何使用 C# 来获取 PC 的 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 地址,就打印出来。
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 地址。两种方法各有优缺点,开发者可以根据具体需求选择使用。