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