2012-03-27 2 views
2

Я использую следующий код, чтобы получить список сетевых интерфейсов, имеющимся в настоящее время на iPhone:System.Net.NetworkInformation IPv4Mask не работает в MonoTouch?

foreach (NetworkInterface l__objNetworkInterface in NetworkInterface.GetAllNetworkInterfaces()) 
{ 
    foreach (UnicastIPAddressInformation l__objIPAddress in l__objNetworkInterface.GetIPProperties().UnicastAddresses) 
    { 
     if (l__objAddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) 
     { 
      if (l__objAddress.IPv4Mask != null) Console.WriteLine("IPv4 Mask: " + l__objAddress.IPv4Mask.ToString()); 
     } 
    } 
} 

Моей проблема: Вызов свойства IPv4Mask кажется блокировать код (IPv4Mask никогда не выводится на консоль и в iPhone-Simulator, похоже, прекращает обработку в вызывающем пункте).

Кто-нибудь знает эту проблему? Является ли свойство IPv4Mask не реализовано в monotouch (я не могу найти никакой информации об этом на monotouch или google)?

ответ

2

IPv4Maskis not implemented для UnicastIPAddresses in mono.

У вас также есть опечатка в вашем коде, вы зацикливаете на l__objIPAddress во втором foreach, но затем вы получаете доступ к l__objAddress внутри цикла.

+0

И причина, по которой это не реализовано, есть ....? – Krumelur

+0

Кажется, что в платформе call for macOs структура ifaddrs содержит маску подсети. Он просто не подключен к свойству IPv4Mask в классе U/nicastIPAddress. – gyurisc

+1

@ Krumelur: скорее всего, потому что никто не нашел времени, чтобы сделать это. –

Смежные вопросы