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

由于Windows 8上的Metro环境缺乏大部分.NET框架类库或者包含一个经济实惠的版本,是否可以从Metro风格的应用程序执行“ping”? 有支持套接字,所以我想有希望,但我不知道从哪里开始,因为每个“C#Ping”的例子使用System.Net.NetworkInformation.Ping ,并不是在WinRT中可用。

我也研究了Mono的源代码,他们的ping实现激发了ping.exe,并从命令行的标准输出窗口返回结果。

不,不幸的不是。 WinRT不支持ICMP: IcmpCreateFile和相关的Win32 API只能在“桌面”API分区中使用。 ICMP可以使用原始套接字来实现,但是由于WinRT不支持这些套接字(并且通常需要提升),所以这个选项也不可用。

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