web-dev-qa-db-ja.com

Pingコマンドが完了しないようです。それは成功しているという意味ですか?

リモートIPにpingしています。 Pingコマンドについてはほとんど知りません。 IPに対してpingを実行しても、動作し続けます... -tオプション を使用していません。

Me$ ping 137.30.124.104
PING 137.30.124.104 (137.30.124.104): 56 data bytes
64 bytes from 137.30.124.104: icmp_seq=0 ttl=62 time=3.378 ms
64 bytes from 137.30.124.104: icmp_seq=1 ttl=62 time=3.825 ms
64 bytes from 137.30.124.104: icmp_seq=2 ttl=62 time=4.882 ms
64 bytes from 137.30.124.104: icmp_seq=3 ttl=62 time=1.822 ms
64 bytes from 137.30.124.104: icmp_seq=4 ttl=62 time=4.572 ms
....
64 bytes from 137.30.124.104: icmp_seq=290 ttl=62 time=3.273 ms

つまり、IPへのpingが成功したということですか。それとも、失敗して再試行しているのですか?どうすれば停止できますか?

10
bernie2436

これがpingコマンドの動作方法です。カウントスイッチ-cを使用して制御できます。

$ ping -c 2 skinner
PING skinner.bubba.net (192.168.1.3) 56(84) bytes of data.
64 bytes from skinner.bubba.net (192.168.1.3): icmp_req=1 ttl=64 time=1.00 ms
64 bytes from skinner.bubba.net (192.168.1.3): icmp_req=2 ttl=64 time=1.13 ms

--- skinner.bubba.net ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 1.001/1.069/1.138/0.075 ms

出力の内訳

このような行は、他のホストに正常にpingしていることを意味します。

64 bytes from skinner.bubba.net (192.168.1.3): icmp_req=2 ttl=64 time=1.13 ms

これらの行は、ホストとpingしようとしているホストの間で発生する各「ping」の詳細を示しています。

6列目

この値icmp_req=2を含む列は、これがどのICMPパケットに関連しているかを示しています。 pingコマンドは、ネットワークパケットを作成します。さまざまなタイプがありますが、TCPまたはUDPパケットのことを聞いたことがあるでしょう。別のタイプはICMPです。ICMPは、携帯電話ネットワークのSMSに似ています。その主な目的は、ネットワーク上のコマンドと制御です。

7列目

興味深い3列目はTTL=64です。 TTL-"aka。Time to Live"は、パケットがタイムアウトするまでに最大64ノードのみを通過することを意味します。したがって、システムがシステムから64 "ホップ"以上離れている場合、TTLを大きくしない限り、pingを実行できません。

8列目

この列には、pingが発生するのにかかった時間(ミリ秒単位)が表示されます。これは、次のような列になります:time=1.13 ms

他の列はかなり自明です。

Pingバージョン

さまざまなpingコマンドは、さまざまなUnixで異なる方法で実装されています。したがって、バージョンに注意を払う必要があります。

$ ping -V
ping utility, iputils-sss20100418

私はFedora 14、Linuxシステムを使用しています。

17
slm

slmの答えは素晴らしいですが、ホストが生きている(そして到達可能で、pingに応答している)かどうかをすばやく確認したい場合は、fpingの代わりにpingを使用できます。ホストにpingを送信し、少しの間応答を待ちます。 fpingの終了コードは、成功または失敗を報告します。

例えば.

 cas @ ganesh:〜$ fping kali 
 kali is alive 
 cas @ ganesh:〜$ echo $?
 0 
 
 cas @ ganesh:〜$ fping durga 
 ICMPホストに到達できません。203.xx.xxx.1からICMPエコーがdurgaに送信されました(203.xx.xxx.14)
 203からICMPホストに到達できませんICMPエコー用の.xx.xxx.1がdurgaに送信されました(203.xx.xxx.14)
 ICMPエコーが203.xx.xxx.1からdurgaに送信されました(203.xx.xxx。 14)
 durgaに送信されたICMPエコーの203.xx.xxx.1からICMPホストに到達できません(203.xx.xxx.14)
 durgaに到達できません
 cas @ ganesh: 〜$エコー$?
 1 
 

「ICMP Host Unreachable」メッセージは、stderrを/ dev/nullにリダイレクトすることで破棄できます。例えば:

cas@ganesh:~$ fping durga 2>/dev/null 
durga is unreachable
1
cas