C# 获得本地IP地址的三种方法
在C#中,有多种方法可以获取本地IP地址。下面将介绍三种常用的方法,并提供示例说明。
方法一:使用Dns.GetHostEntry
方法
using System;
using System.Net;
class Program
{
static void Main()
{
string hostName = Dns.GetHostName();
IPHostEntry hostEntry = Dns.GetHostEntry(hostName);
foreach (IPAddress ipAddress in hostEntry.AddressList)
{
if (ipAddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
Console.WriteLine(ipAddress.ToString());
}
}
}
}
上述示例中,我们首先使用Dns.GetHostName
方法获取本地主机名,然后使用Dns.GetHostEntry
方法获取与主机名关联的IP地址列表。最后,我们遍历IP地址列表,并筛选出IPv4地址(AddressFamily.InterNetwork
),并将其打印出来。
方法二:使用NetworkInterface
类
using System;
using System.Net.NetworkInformation;
class Program
{
static void Main()
{
NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface networkInterface in networkInterfaces)
{
if (networkInterface.OperationalStatus == OperationalStatus.Up)
{
IPInterfaceProperties ipProperties = networkInterface.GetIPProperties();
foreach (UnicastIPAddressInformation ipAddressInfo in ipProperties.UnicastAddresses)
{
if (ipAddressInfo.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
Console.WriteLine(ipAddressInfo.Address.ToString());
}
}
}
}
}
}
上述示例中,我们使用NetworkInterface.GetAllNetworkInterfaces
方法获取所有网络接口的列表。然后,我们遍历每个网络接口,并检查其操作状态是否为“Up”。对于每个处于活动状态的网络接口,我们获取其IP属性,并遍历其单播IP地址信息。最后,我们筛选出IPv4地址,并将其打印出来。
方法三:使用IPAddress
类和NetworkInterface
类的组合
using System;
using System.Net;
using System.Net.NetworkInformation;
class Program
{
static void Main()
{
IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ipAddress in hostEntry.AddressList)
{
if (ipAddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
NetworkInterface networkInterface = NetworkInterface.GetByAddress(ipAddress);
if (networkInterface != null && networkInterface.OperationalStatus == OperationalStatus.Up)
{
Console.WriteLine(ipAddress.ToString());
}
}
}
}
}
上述示例中,我们首先使用Dns.GetHostEntry
方法获取本地主机的IP地址列表。然后,我们遍历IP地址列表,并对于每个IPv4地址,使用NetworkInterface.GetByAddress
方法获取与之关联的网络接口。最后,我们检查网络接口的操作状态是否为“Up”,并将符合条件的IP地址打印出来。
这些方法提供了多种途径来获取本地IP地址,你可以根据自己的需求选择适合的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c# 获得本地ip地址的三种方法 - Python技术站