2012-04-02 1 views
4

В Mono для Android Я пытаюсь получить все IP-адреса для своего устройства в локальной сети.GetAllNetworkInterfaces() throws exception

Я не обращаю внимания на loopbacks, но я не заинтересован в вызове DNS.

Лучший способ, кажется, называть ...

using System.Net.NetworkInformation; 

NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces(); 

... кроме того, он бросает ...

System.EntryPointNotFoundException: getifaddrs

Любые предложения?

+0

положить все трассировки стека вашего исключения, я думаю, что вы должны объявить разрешение доступа к сети или NETWORK_STATE или что-то вроде этого – Houcine

ответ

6

К сожалению, это известная ошибка в Mono для Android. Отчет об ошибке доступен here.

+0

Unbelievably, это все еще происходит в последней альфа-версии OCT 2013. –

+0

И то же самое происходит в мае 2014 года. –

0

Если вы используете только Mono для Android, вы можете попробовать этот код, чтобы получить каждый IP:

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

Выход:

[ло] [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]