据我所知,有两种方法可以通过 perl 找到可 ping 的 ip,它们是
1. Using system Ping Command.
2. Using Net::Ping Module.
我尝试通过以上两种技术调用IP的可ping状态。
我在这些方法中遇到了一个问题,即系统 ping 命令为一个 IP 返回 true。但是,Net::Ping 模块为相同的 IP 返回 false。
我不知道哪一个是正确的。任何人都请建议我更喜欢找到可ping IP的正确方法。我在下面编写了示例代码片段:
#!/usr/bin/perl
use strict;
use Net::Ping;
my $ip_address = $ARGV[0];
chomp($ip_address);
#Using Net::Ping Module
my $p = Net::Ping->new();
if ( $p->ping($ip_address) ) {
print "Step - 1: Success!\n";
}
else {
print "Step - 1: Fail!\n";
}
#Using System Command
$retval=system("ping -c 2 $ip_address");
if ($retval==0) {
print "Step - 2: Success!\n";
} else {
print "Step - 2: Fail!\n";
}
print "\n\n\ Step2: $retval\n\n";
对于某些 IP 地址,系统命令返回成功,而 Net::Ping 则返回失败。这两种方法有什么区别吗?
谢谢,马丹