GetAllNetworkInterfaces () выдает исключение - PullRequest
4 голосов
/ 02 апреля 2012

В Mono для Android я пытаюсь получить все IP-адреса для моего устройства в локальной сети.

Я не против петель, но меня не интересует вызов DNS.

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

using System.Net.NetworkInformation;

NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();

... за исключением того, что он выбрасывает ...

System.EntryPointNotFoundException: getifaddrs

Есть предложения?

Ответы [ 2 ]

6 голосов
/ 02 апреля 2012

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

0 голосов
/ 25 марта 2013

Если вы используете только 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());
}

Вывод:

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

...