System.Net.NetworkInformation IPv4Mask 在 MonoTouch 中不起作用?
Posted
技术标签:
【中文标题】System.Net.NetworkInformation IPv4Mask 在 MonoTouch 中不起作用?【英文标题】:System.Net.NetworkInformation IPv4Mask not working in MonoTouch? 【发布时间】:2012-03-27 09:06:10 【问题描述】:我使用以下代码获取 iPhone 上当前可用的网络接口列表:
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 模拟器似乎在调用点停止处理)。
有人知道这个问题吗? IPv4Mask 属性是否未在 monotouch 中实现(我在 monotouch 或谷歌上找不到任何明确的信息)?
【问题讨论】:
【参考方案1】:IPv4Mask
is not implemented 用于单播中的 UnicastIPAddresses。
您的代码中似乎也有错字,您在第二次 foreach 中循环了 l__objIPAddress
,但随后您在循环内访问了 l__objAddress
。
【讨论】:
似乎在 MacOs 的平台调用中,结构 ifaddrs 包含子网掩码。它只是没有连接到 U/nicastIPAddress 类中的 IPv4Mask 属性。 @Krumelur:很可能是因为没有人花时间去做。以上是关于System.Net.NetworkInformation IPv4Mask 在 MonoTouch 中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章