📅  最后修改于: 2023-12-03 15:41:28.193000             🧑  作者: Mango
当我们需要获取当前计算机的 IPv4 地址时,可以使用 C# 中的 NetworkInterface
类和 IPAddress
类。这两个类可以帮助我们获取当前计算机的网络接口和 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 地址,因此需要根据实际情况进行调整。