我正在尝试编写一个小型网站监控程序,它可以检查我的网站主机是否已关闭,并计算正常运行时间或警告我是否已关闭。它将是一个独立的应用程序。
我想知道ping是否是查找网站是否已关闭的好方法?
提前致谢。
答案 0 :(得分:3)
这是一个你可以做的事情,但无论如何都不是确定的。
某些网站会忽略ICMP数据包,因此不会给出ping响应。即使Web服务器(或您正在使用的任何服务)关闭,某些站点也会响应ping。
您可以确定给定网站提供服务的唯一方法是使用该服务。没有其他事情会如此准确。
更好的方法是提供一系列步骤,以检测故障所在的位置,至少在您可以控制的基础架构中。例如:
然后,您的测试客户只会尝试“联系”这四点并报告成功。由于您希望您的网站大部分时间都处于启动状态,我只需检查第四个选项,看看是否一切正常,只有在发现问题时才进行其他检查。
答案 1 :(得分:2)
这取决于你如何定义ping。如果您正在谈论“低级别”ICMP回声,那么它不可能是您网站是否已关闭的良好指标。最好让实际应用程序从您的站点下拉页面以确保HTTP服务器正在运行。有很多服务,也可以从谷歌下载一些代码。 http://www.dailyblogtips.com/test-if-a-website-is-down-for-everyone-or-just-for-your/
答案 2 :(得分:2)
您可以确定给定网站提供服务的唯一方法是使用该服务。没有其他事情会如此准确。
完全同意。因此,最好的方法是创建一个脚本,在您的网站上进行事务监控(有时也称为真实用户监控)。您可以使用Perl(Mechanize),免费的iMacros for Firefox插件或在Windows上使用webbrowser控件。
Bur为什么不简单地使用(免费)第三方监控服务?有一些服务提供事务监控(Keynote,...)。 AlertFox还有free transaction monitoring计划。这可以帮助您入门(和/或将第三方结果与您自己的结果进行比较)。
答案 3 :(得分:1)
ICMP可以证明服务器还活着。
TCP检查可以显示Web服务器正在运行,但不能显示该站点。
要执行站点检查,您应该执行http GET请求(有时甚至HEAD不起作用)以确保页面正常。(返回状态200)
您可以编写自己的检查系统或使用某些第三方网站,例如http://allping.net/
答案 4 :(得分:0)
ping可让您深入了解特定位置的延迟,并指出可能的网络问题(数据包丢失)。如前面的答案中所述,某些服务器不响应ping请求,在这种情况下ping无用。 要从全球50多个地点检查服务器,请查看此免费工具:http://just-ping.com/