1

我正在尝试编写一个小型网站监控程序,它可以检查我的网络主机以查看它们是否关闭,并计算正常运行时间或在它关闭时警告我。这将是一个独立的应用程序。

我想知道 ping 是否是确定站点是否关闭的好方法?

提前致谢。

4

4 回答 4

3

这是你可以做的件事,但无论如何都不是确定的。

一些站点会忽略 ICMP 数据包,因此不会给出 ping 响应。即使 Web 服务器(或您所追求的任何服务)关闭,某些站点也会响应 ping。

您可以确定给定站点将提供服务的唯一方法是使用该服务。没有什么比这更准确了。

更好的方法是提供一系列步骤来检测故障所在,至少在您可以控制的基础设施中。例如:

  • 允许接收并执行 ping。
  • 在 Web 服务器中有一个静态网页。
  • 在提供静态内容的应用程序服务器中有一个动态页面。
  • 在使用数据库的应用程序服务器中有一个动态页面。

然后您的测试客户将简单地尝试“联系”这四个点并报告成功。由于您希望您的网站大部分时间都处于运行状态,因此我只需检查第四个选项以查看是否一切正常,并仅在发现问题时进行其他检查。

于 2010-12-27T13:59:19.703 回答
2

这取决于您如何定义 ping。如果您谈论的是“低级别”ICMP 回显,那么不,它不太可能是您的站点是否已关闭的良好指标。您最好让应用程序从您的站点下拉页面以确保 HTTP 服务器正在运行。这方面有很多服务,您可能还可以从谷歌下载一些代码。http://www.dailyblogtips.com/test-if-a-website-is-down-for-everyone-or-just-for-your/

于 2010-12-27T13:59:43.307 回答
1

ICMP 可以证明服务器是活着的。

TCP 检查可以显示 Web 服务器正在工作,但不能显示站点。

要执行站点检查,您应该执行 http GET 请求(即使 HEAD 有时也不起作用)以确保页面正常。(返回状态 200)

您可以编写自己的检查系统或使用第三方网站,如http://allping.net/

于 2012-03-05T08:39:05.327 回答
0

ping 可让您深入了解特定位置的延迟,并指出可能的网络问题(数据包丢失)。如前一个答案所述,某些服务器不响应 ping 请求,在这种情况下 ping 是无用的。要检查来自全球 50 多个地点的 ping 服务器,请查看此免费工具:http: //just-ping.com/

于 2011-01-04T09:48:21.713 回答