【发布时间】:2013-02-14 12:53:02
【问题描述】:
我有一个简单的脚本,它会定期(每隔几秒一次)验证该服务器是否存在互联网连接。需要明确的是,它不会检查外部站点/服务/服务器是否处于活动状态。作为可靠的互联网目的地,我使用 google、yahoo 等网站的 IP。通常我使用 3 个目的地(LAN、ISP 网络、ISP 外部)
我当前负责此的代码只是对ping 的简单而肮脏的调用:
my $pingResponse = `ping -c 1 -w 1 123.123.123.123`;
my $isConnected = parsePingResponse($pingResponse);
它似乎有效,但我确信这不是完成这项任务的正确/最佳方式。至少有 3 个缺点:外部系统调用,速度慢,deadline 相对较长,为 1 秒。
所以,我的问题是:如何以 perlish 的方式简单有效地实现 ping 功能,以验证 Internet 连接是否有效?
(我认为 LWP 有点矫枉过正。站点或页面是否可用并不重要,只要可以访问一些外部 IP。可能应该是涉及低级网络的简单事情)
【问题讨论】:
标签: perl networking connection