0
我需要檢查遠程計算機是否正在ping,以便我可以對該計算機執行ssh並在那裏執行命令。如何在perl中執行此檢查?如何檢查遠程計算機是否可以在perl中ping通
我需要檢查遠程計算機是否正在ping,以便我可以對該計算機執行ssh並在那裏執行命令。如何在perl中執行此檢查?如何檢查遠程計算機是否可以在perl中ping通
Net::Ping
,但這是一個愚蠢的做法。如果你想連接SSH,只需要做,如果你不能處理失敗。
如果網絡接口響應ping,這不能保證SSH工作。相反,SSH可以工作並且ping被阻塞。
一個簡單而快速的測試,一個主機特定端口上偵聽可以使用IO::Socket::INET
use IO::Socket::INET;
my $address_tuple = "$ip:$port";
my $test_sock = IO::Socket::INET->new(PeerAddr => $address_tuple, Timeout => 0.15);
if ($test_sock) {
# Host is up and appears to be listening on that port
$test_sock->close();
}
else {
# Host doesn't appear to be listening on that port
}
嗯,你是正確的完成。但是我只想在進行一些處理之前進行基本檢查。這就是爲什麼。謝謝兄弟..我在我的程序中使用期望做的ssh。 – Raj 2010-07-08 09:40:20
。在那裏我給了像 [email protected]; $ exp-> spawn(「ssh $ argument」)或者死於「無法產生ssh到ip $ ssh_ip_address \ n」; 但即使它不能執行ssh也不會打印無法將ssh分配給ip $ ssh_ip_address。你能幫我解釋爲什麼它不會發生嗎? – Raj 2010-07-08 09:42:12
[打開一個新問題](http://stackoverflow.com/questions/ask)爲這個不同的問題。 – daxim 2010-07-08 09:53:27