如何使用Xamarin.iOS枚举ipv4地址和ipv4mask

时间:2014-02-03 10:31:51

标签: c# ios xamarin.ios xamarin

我正在尝试使用iOS枚举所有网络接口的ip地址和子网掩码。

        System.Net.NetworkInformation.NetworkInterface[] nics = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces();

        foreach (System.Net.NetworkInformation.NetworkInterface nic in nics)
        {
            var ipProps = nic.GetIPProperties();

            // We're only interested in IPv4 addresses for this example.
            var ipv4Addrs = ipProps.UnicastAddresses
                .Where(addr => addr.Address.AddressFamily == AddressFamily.InterNetwork);

            foreach (var addr in ipv4Addrs)
            {
                UnicastIPAddressInformation addrInfo = (UnicastIPAddressInformation)addr;
                IPAddress ipAddr = addrInfo.Address; 
                IPAddress mask = addrInfo.IPv4Mask;

                string x = mask.ToString(); // NotImplementedException is thrown here.
            }
        }

当我试图获取IP4掩码时,似乎抛出了NotImplementedException。似乎Mono没有实现这个属性。

有没有其他方法可以使用Xamarin.iOS类或iOS API调用?

1 个答案:

答案 0 :(得分:1)

我试图抓住自己的ich,所以我查看了单基类库并重用了那里找到的平台调用。我创建了一个小型iPhone应用程序,枚举网络接口并显示地址和掩码。

这是包含源代码的github repo - NetworkTest