如何获取PC的本地IP



我想获取我的PC的IP(从路由器中获取的本地IP(。

我可以在网络上获得IP,但可以使用其他IP。是否有一种方法可以仅提取所需的IP而不将所有IP放入数组中,然后从它们中选择所需的IP?

代码:

string strHostName = string.Empty;
strHostName = Dns.GetHostName();
IPHostEntry ipHostEntry = Dns.GetHostEntry(strHostName);
IPAddress[] address = ipHostEntry.AddressList;
foreach (var item in address)
{
    Console.WriteLine(item.ToString());
}

此代码的结果是在网络上发现的一堆IP,包括我的IP(广播域,IPv6和类似内容,而不是其他设备的IP(。我只想获得我的实际IP而无需获得全部信息,因为代码将在我无法一直监视IP的计算机上发布。

您缺少通过类型(V4(过滤IP的缺失。无论如何,您可以在PC上有多个IP V4地址(例如,您可以有2个接口,LAN和Wi-Fi(。

以下代码获取可用IP V4的列表。

List<string> ips = new List<string>();
System.Net.IPHostEntry entry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());
foreach (System.Net.IPAddress ip in entry.AddressList)
    if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
        ips.Add(ip.ToString());

最新更新