私が知っているように、perlを介してping可能なIPを見つけるには2つの方法があります。
1. Using system Ping Command.
2. Using Net::Ping Module.
上記の2つの方法で、IPのping可能な状態を呼び出そうとしました。
これらのメソッドで問題が発生しています。つまり、システムのpingコマンドが1つの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は失敗を返します。これら2つの方法に違いはありますか?
ありがとう、マダン