Linux ping命令:向網路主機傳送ICMP請求

2020-07-16 10:04:33
ping 是常用的網路命令,主要通過 ICMP 協定進行網路探測,測試網路中主機的通訊情況。

ping 命令的基本資訊如下。
  • 命令名稱:ping。
  • 英文原意:send ICMP ECHO_REQUEST to network hosts。
  • 所在路徑:/bin/ping。
  • 執行許可權:所有使用者。
  • 功能描述:向網路主機傳送 ICMP 請求。

命令的基本格式如下:

[[email protected] ~]# ping [選項] IP

選項:
  • -b: 後面加入廣播地址,用於對整個網段進行探測;
  • -c 次數: 用於指定 ping 的次數;
  • -s 位元組: 指定探測包的大小;

【例 1】 探測與指定主機通訊。

[[email protected] ~]#ping 192.168.103.151
PING 192.168.103.151 (192.168.103.151) 56(84) bytes of data.
64 bytes from 192.168.103.151: icmp_seq=1 ttl=128 time=0.300 ms
64 bytes from 192.168.103.151: icmp_seq=2 ttl=128 time=0.481 ms
…省略部分內容...
#探測與指定主機是否通訊

Linux是一個比較實在的作業系統,這個 ping 命令如果不使用"Ctrl+C"快捷鍵強行中止,就會一直 ping 下去,直到天荒地老……

【例 2】指定 ping 的次數。
既然 ping 這麼"實在",如果不想一直 ping 下去,則可以使用"-c"選項指定 ping 的次數。例如:

[[email protected] ~]# ping -c 3 192.168.103.151
#只探測3次,就中止ping命令


【例 3】 探測網段中的可用主機。
在 ping 命令中,可以使用"-b"選項,後面加入廣播地址,探測整個網段。我們可以使用這個選項知道整個網路中有多少主機是可以和我們通訊的,而不用一個一個 IP 進行探測。例如:

[[email protected] ~]# ping -b -c 3 192.168.103.255
WARNING: pinging broadcast address
PING 192.168.103.255 (192.168.103.255) 56(84) bytes of data.
64 bytes from 192.168.103.199: icmp_seq=1 ttl=64 time=1.95ms
64 bytes from 192.168.103.168: icmp_seq=1 ttl=64 time=1.97ms(DUP!)
64 bytes from 192.168.103.252: icmp_seq=1 ttl=64 time=2.29ms(DUP!)
…省略部分內容...
#探測192.168.103.0/24網段中有多少可以通訊的主機