C# 如何获取PC的本地IP?

C# 如何获取PC的本地IP?,c#,asp.net,.net,asp.net-core,networking,C#,Asp.net,.net,Asp.net Core,Networking,我想获取电脑的IP(从路由器获取的本地IP) 我可以得到IP,但与网络上的其他IP。有没有一种方法可以只提取所需的IP,而不获取阵列中的所有IP,然后从中选择所需的IP 已尝试的代码: 这段代码的结果是在网络上找到了一堆IP,包括我的IP(广播域、IPv6和类似的东西,但不是其他设备的IP)。我只想获取我的实际IP,而不想获取全部,因为代码将发布在我无法始终监视IP的机器上。您缺少按类型筛选IP的功能(v4)。无论如何,您的PC上可以有多个IP v4地址(例如,您可以有两个接口,LAN和Wi-F

我想获取电脑的IP(从路由器获取的本地IP)

我可以得到IP,但与网络上的其他IP。有没有一种方法可以只提取所需的IP,而不获取阵列中的所有IP,然后从中选择所需的IP

已尝试的代码:
这段代码的结果是在网络上找到了一堆IP,包括我的IP(广播域、IPv6和类似的东西,但不是其他设备的IP)。我只想获取我的实际IP,而不想获取全部,因为代码将发布在我无法始终监视IP的机器上。

您缺少按类型筛选IP的功能(v4)。无论如何,您的PC上可以有多个IP v4地址(例如,您可以有两个接口,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());
List-ips=new-List();
System.Net.IPHostEntry条目=System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());
foreach(条目中的System.Net.IPAddress ip.AddressList)
if(ip.AddressFamily==System.Net.Sockets.AddressFamily.InterNetwork)
Add(ip.ToString());

ip不存在,它取决于系统上的接口数量。你应该照顾好所有的接口,或者专门寻找一个接口。如果你想知道你连接到internet的接口的IP地址,那么answer有一个解决方案
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());