- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我正在使用 Xamarin 和 .net 在 iOS 项目中实现 uPNP。我一直在努力为本地设备(即运行程序的设备)获取有效的本地 IP 地址。
我已尝试使用 NetworkInterface.GetAllNetworkInterfaces()
,但 Xamarin 对该方法的实现存在一个错误,它不起作用。
所以,我环顾四周,找到了一个简单的方法来完成这个。我尝试了以下方法:
IPAddress[] hostAddresses = Dns.GetHostAddresses(Dns.GetHostName());
以上抛出“无法解析主机...”异常(其中...是我的设备名称)。
所以它确实获取了我的设备名称,但随后无法解析它。
此代码在 WPF 应用程序的 Windows 下工作得很好。在带有 iPhone 或 iPad 模拟器的 MAC 上使用 Xamarin Studio 效果很好。
但是,当我尝试让 MAC 在我的实际 iPad 设备上启动该应用程序时,出现以下异常:
System.Net.Sockets.SocketException: Could not resolve host 'Charrison' at System.Net.Dns.Error_11001 (System.String hostName) [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/Dns.cs:298 at System.Net.Dns.hostent_to_IPHostEntry (System.String originalHostName, System.String h_name, System.String[] h_aliases, System.String[] h_addrlist) [0x00082] in /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/Dns.cs:326 at System.Net.Dns.GetHostByName (System.String hostName) [0x0002a] in /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/Dns.cs:467 at System.Net.Dns.GetHostEntry (System.String hostNameOrAddress) [0x00061] in /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/Dns.cs:406 at System.Net.Dns.GetHostAddresses (System.String hostNameOrAddress) [0x00065] in /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/Dns.cs:432 at UpnpUI_iOS.DeviceViewController.startButton_TouchUpInside (System.Object sender, System.EventArgs e) [0x0008c] in /Users/engineering/Projects/UpnpUI_iOS/DeviceViewController.cs:83 at MonoTouch.UIKit.UIControlEventProxy.Activated () [0x00000] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIControl.cs:30 at at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr) at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0004c] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:38
at UpnpUI_iOS.Application.Main (System.String[] args) [0x00008] in /Users/engineering/Projects/UpnpUI_iOS/Main.cs:17
如果有人知道使用 .net 和 Xamarin 在我的 iPad 上实际工作的本地设备获取有效 IP 地址的好方法,请告诉我。我真的很感激。
提前感谢您提出有用的建议。
最佳答案
在 forums 中被 Mike Bluestein 盗走
foreach (var netInterface in NetworkInterface.GetAllNetworkInterfaces()) {
if (netInterface.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 ||
netInterface.NetworkInterfaceType == NetworkInterfaceType.Ethernet) {
foreach (var addrInfo in netInterface.GetIPProperties().UnicastAddresses) {
if (addrInfo.Address.AddressFamily == AddressFamily.InterNetwork) {
var ipAddress = addrInfo.Address;
// use ipAddress as needed ...
}
}
}
}
关于ios - 调用 Dns.GetHostAddresses(Dns.GetHostName()) 时无法解决主机异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17885130/
我写了一个小测试程序,它使用 Dns.GetHostAddresses 来解析主机名。如果我输入一个不存在的主机名,它会抛出一个 SocketException 并且消息将是 No such host
我一直试图找到使用 GetHostAddresses 或 GetHostEntry 的正确位置。我通过阅读这篇文章 (http://msdn.microsoft.com/en-us/library/m
我正在编写一个使用 C# 解析域 IP 地址的脚本 问题是我有很多域无法解析为 IP,因此代码 (Dns.GetHostAddresses) 运行了很长时间,试图解析域的 IP没有 IP。 这是代码:
InetAddress address= InetAddress.getLocalHost(); System.out.println(address.getHostName()+ "------"+
我正在尝试使用 WifiManager 和 WifiInfo 类获取我的手机 IP 地址。 它返回正确的 ip 地址反转。 public String getWifiIpAddress() {
我有一个用 Java 编写的遗留服务器应用程序,在过去的六年里,它在运行 Java 6 的 Windows 2003 机器上运行良好。 我们最近将应用程序迁移到运行最新版本 java 的全新 wind
这是我尝试过的: @Test public void local_host_test() { InetAddress inetAddress = Mockito.mock(InetAddres
我正在开发 uwp 应用程序。我编辑了主机文件并将 www.example.com 重定向到本地服务器 IP (192.168.1.187)。在浏览器中网站加载正确但在应用程序中 System.Net
Dns.GetHostAddresses 真的能取回所有注册的 IP 吗? 也就是说,DNS 可以针对一个 DNS 名称注册多个 IP,以用于循环类型目的(例如,多个代理服务器,但使用一个主要的 DN
我有两个设备 - Note 3 (N9005) 和 G Pad 8.3(也用 Nexus 4 而不是 note 3 进行了测试,结果相同)。 当我在 Note 3 是组所有者时创建 Wifi P2P
我尝试了 InetAddress.getLocalHost().getHostAddress() 来获取用户的互联网地址。它给了我 127.0.1.1 但我正在寻找更像 192.168.1.75 的东
我想加入要在消息框中显示的字符串,但不确定为什么会在这一行出现错误: IPAddress[] ips = Dns.GetHostAddresses(he.HostName); var addr = s
是InetAddress.getHostAddress() JDK 1.6 是否兼容 ipv6? 具体我在做什么 InetAddress.getLocalHost().getHostAddress()
我正在使用 Java 在一个类中构建一个简单的方法,该方法将获取用户计算机的 LAN IPv4 地址。对于大多数部分,这很好用,除了一个异常(exception)......我得到的 IP 地址是我的
我正在创建 TCP 套接字应用程序。在服务器端, ss = new ServerSocket(10000); Socket socket = ss.accept(); String remoteIp
我已经对此进行了相当多的搜索,但仍然没有任何运气。问题是,如果我从我的服务器进行 nslookup,如果主机有 IPv6 地址,我会在列表中看到它。但是,如果我使用 .Net System.Net 的
因此,我正在使用 Xamarin 和 .net 在 iOS 项目中实现 uPNP。我一直在努力为本地设备(即运行程序的设备)获取有效的本地 IP 地址。 我已尝试使用 NetworkInterface
用下面的代码 InetAddress.getLocalHost().getHostAddress(); 可以获取主机地址。但是 JVM 是如何发现它的呢? Java API 只告诉您它返回它 ( AP
我正在使用一个库,该库使用 java.net.InetAddress.getLocalHost().getHostAddress() 来获取我的本地 IP 地址。但是,这总是在我的计算机上返回一个 I
我正在开发一个 Android 应用程序,它可以返回连接到 WI-FI 网络的设备的 IP 地址。当我使用代码时 InetAddress.getLocalHost().getHostAddress()
我是一名优秀的程序员,十分优秀!