我正在尝试使用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调用?
答案 0 :(得分:1)
我试图抓住自己的ich,所以我查看了单基类库并重用了那里找到的平台调用。我创建了一个小型iPhone应用程序,枚举网络接口并显示地址和掩码。
这是包含源代码的github repo - NetworkTest