获取所有网络接口()抛出异常

4
在Mono for Android中,我试图获取本地网络中设备的所有IP地址。我不介意回送地址,但我对调用DNS不感兴趣。最好的方法似乎是调用...
using System.Net.NetworkInformation;

NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();

除了抛出异常,它什么都不做。

系统.EntryPointNotFoundException:getifaddrs

有什么建议吗?


请将您的异常堆栈跟踪全部放置,我认为您应该声明访问NETWORK或NETWORK_STATE等权限。 - Houcine
2个回答

6

很不幸,这是Mono for Android已知的一个bug。可以在这里查看bug报告。


令人难以置信的是,这个最新的Alpha版本OCT 2013仍在发生。 - Herman Schoenfeld
同样的情况也发生在2014年5月。 - Jan Zeman

0

如果你只使用Mono for Android,你可以尝试这段代码来获取每个IP:

Java.Util.IEnumeration networkInterfaces = NetworkInterface.NetworkInterfaces;
while(networkInterfaces.HasMoreElements) {
    Java.Net.NetworkInterface netInterface = (Java.Net.NetworkInterface)networkInterfaces.NextElement();
    Console.WriteLine(netInterface.ToString());
}

输出:

[lo][1][/::1%1%1][/127.0.0.1]
[dummy0][2]
[sit0][3]
[ip6tnl0][4]
[wlan0][5][/fe80::8e77:12ff:fe5a:6052%wlan0%5][/192.168.100.135]
[ppp0][6][/10.0.0.1]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接