这是我的最后一个问题。现在我的新要求是 ping 一组服务器并检查它们是否在回复。我正在尝试我的方式
system("ping xxx.xx.xx.xx >out.txt");
然后解析 out.txt 中的字符串“Request timed out.”。这给我带来了很好的结果。但是有没有更好的方法可以从 c 程序中做。也欢迎非编程方式。但主要是我想通过 C 程序。如果请求超时,我将通过 php 以同样的方式发送邮件。提前致谢。
我的环境:windows、Tiny C 编译器
这是我的最后一个问题。现在我的新要求是 ping 一组服务器并检查它们是否在回复。我正在尝试我的方式
system("ping xxx.xx.xx.xx >out.txt");
然后解析 out.txt 中的字符串“Request timed out.”。这给我带来了很好的结果。但是有没有更好的方法可以从 c 程序中做。也欢迎非编程方式。但主要是我想通过 C 程序。如果请求超时,我将通过 php 以同样的方式发送邮件。提前致谢。
我的环境:windows、Tiny C 编译器
一种更好的捕获输出的方法,而不是system()
使用它popen()
。这样您就可以在不使用临时文件的情况下捕获命令的输出。
一个更好的 ping 方法是使用 Microsoft ICMP API(可以在此处找到介绍页面)。如果您的 C 编译器能够调用任意 Win32 API 函数,这将是可能的。特别是,IcmpSendEcho是您想要的功能。
另一种选择是使用原始套接字自己发送/接收 ICMP 数据包,或者为此使用libnet等库。然后,您可以以更精细的粒度进行测量。不过,这需要一些时间来适应。:)