Codelaby Asked: 2020-01-06 10:29:12 +0800 CST 2020-01-06 10:29:12 +0800 CST 2020-01-06 10:29:12 +0800 CST 在 UWP 上的 C# 中获取本地 IP 772 如何在 C# 中获取设备的 ip?它在被称为 windows10 的通用应用程序的 UWP(通用 Windows 平台)范围内工作 c# 2 Answers Voted Best Answer JuanK 2020-01-06T10:44:51+08:002020-01-06T10:44:51+08:00 您应该询问互联网连接配置文件,然后检查与配置文件匹配的当前网络适配器。 请记住,您必须验证许多事情,例如设备是否存在,或者是否存在多个设备。该设备甚至可能存在,但您未连接到网络。等等。 使用此方法查找已实现所有内容的本地 IP。 private string GetLocalIp() { var icp = NetworkInformation.GetInternetConnectionProfile(); //sino hay disp de red devuelve null if (icp?.NetworkAdapter == null) return null; var hostname = (from hn in NetworkInformation.GetHostNames() where hn.IPInformation?.NetworkAdapter != null && hn.IPInformation.NetworkAdapter.NetworkAdapterId == icp.NetworkAdapter.NetworkAdapterId select hn).First(); return hostname?.CanonicalName; } 使用这种其他方法(如下),您可以找到它连接到 Internet 的地址,该地址不是同一个本地 IP。NetworkInformation.GetHostNames()返回一些带有 IP 的接口列表,无论如何这些接口的顺序是 . 知识产权 没有 IP 的接口 带 IP 的接口 网络类型 外部的 当地的 所以这个方法返回带有外部 IP 的第一个接口。 private string GetIp() { string ip = string.Empty; var ll = NetworkInformation.GetHostNames().ToList(); foreach (HostName localHostName in NetworkInformation.GetHostNames()) { if (localHostName.IPInformation != null) { if (localHostName.Type == HostNameType.Ipv4) { ip = localHostName.ToString(); break; } } } return ip; } MBahamondes 2020-01-06T10:53:01+08:002020-01-06T10:53:01+08:00 在这里您可以查看 API 文档:Windows.Networking 试试这个代码: string ip; foreach (HostName localHostName in NetworkInformation.GetHostNames()) { if (localHostName.IPInformation != null) { if (localHostName.Type == HostNameType.Ipv4) { ip = localHostName.ToString(); break; } } }
您应该询问互联网连接配置文件,然后检查与配置文件匹配的当前网络适配器。
请记住,您必须验证许多事情,例如设备是否存在,或者是否存在多个设备。该设备甚至可能存在,但您未连接到网络。等等。
使用此方法查找已实现所有内容的本地 IP。
使用这种其他方法(如下),您可以找到它连接到 Internet 的地址,该地址不是同一个本地 IP。
NetworkInformation.GetHostNames()
返回一些带有 IP 的接口列表,无论如何这些接口的顺序是 .所以这个方法返回带有外部 IP 的第一个接口。
在这里您可以查看 API 文档:Windows.Networking
试试这个代码: