是否可以在C#中编写一个将在Windows 8 Metro环境中运行的Ping类?

Nat*_*ate 5 c# windows networking windows-8 windows-runtime

由于Windows 8上的Metro环境缺少大多数.NET框架类库或包含经济上削减的版本,是否可以从Metro风格应用程序执行"ping"?支持套接字,所以我猜有希望,但我不知道从哪里开始,因为每个"C#Ping"示例都使用System.Net.NetworkInformation.Ping,而WinRT中没有.

我还查看了Mono的源代码,他们的ping实现启动了ping.exe并从命令行的标准输出窗口返回结果.

Ric*_*ook 5

不,不幸的是没有.WinRT不支持ICMP:IcmpCreateFile相关的Win32 API仅在"桌面"API分区中可用.ICMP可以使用原始套接字实现,但由于WinRT不支持这些(并且通常需要提升),因此您也无法使用此选项.

作为Windows Store网络扫描工具的开发人员(http://lanscan.rcook.org/),我很乐意能够做到这一点.

  • 我真的希望我也能这样做.我运行http://www.wp-networktools.com/并且我不断得到差评,因为该应用程序不会ping本地地址.我试图将它移植到WinRT,但没有这个API,我会得到如此糟糕的评论,这是不值得的.很遗憾,因为它真的很酷. (2认同)