淺談PING指令的使用
ping UNIX 命令
用途
發送一個回送信號請求給網絡主機。
語法
ping [ -d] [ -D ] [ -n ] [ -q ] [ -r] [ -v] [ \ -R ] [ -a addr_family ] [ -c Count ] [ -w timeout ] [ -f | -i \ Wait ] [ -l Preload ] [ -p Pattern ] [ -s PacketSize ] [ -S hostname/IP addr ] \ [ -L ] [ - I a.b.c.d. ] [ -o interface ] [ -T ttl ] Host [ PacketSize ] \ [ Count ]
描述
/usr/sbin/ping 命令發送一個因特網控制報文協議(ICMP) ECHO_REQUEST 去從主機 或網關那里獲得 ICMP ECHO_RESPONSE 信號。
ping 命令用于:
* 確定網絡和各外部主機的狀態。
* 跟蹤和隔離硬件和軟件問題。
* 測試、評估和管理網絡。
如果主機正在運行并連在網上, 它就對回送信號進行響應。每個回送信號請求包含一個網 際協議(IP)和 ICMP 頭,后面緊跟一個timeval 結構,以及來填寫這個信息包的足夠的 字節。缺省情況是連續發送回送信號請求直到接收到中斷信號(Ctrl-C)。
ping 命令每秒發送一個數據報并且為每個接收到的響應打印一行輸出。ping 命令計算信 號往返時間和(信息)包丟失情況的統計信息,并且在完成之后顯示一個簡要總結。ping 命 令在程序超時或當接收到 SIGINT 信號時結束。Host 參數或者是一個有效的主機名或者是 因特網地址。
缺省情況下,ping 命令將連續發送回送信號請求到顯示器直到接收到中斷信號(Ctrl-C).中斷鍵可以使用 stty 命令來更改。
由于連續回送信號請求會對系統造成一定的負載,重復的請求信號應當主要用作問題隔離。
標志
-c Count 指定要被發送(或接收)的回送信號請求的數目,由 Count 變量指出。
-w timeout 這個選項僅和 -c 選項一起才能起作用。它使 ping 命令以最長的超時時間去 等待應答(發送最后一個信息包后)。
-d 開始套接字級別的調試。
-D 這個選項引起 ICMP ECHO_REPLY 信息包向標準輸出的十六進制轉儲。
-f 指定 flood-ping 選項。
-f 標志“傾倒”或輸出信息包,在它們回來時或每秒 100 次, 選擇較快一個。每一次發送 ECHO_REQUEST,都打印一個句號,而每接收到一個 ECHO_REPLY 信號,就打印一個退格。這就提供了一種對多少信息包被丟棄的信息的快 速顯示。僅僅 root 用戶可以使用這個選項。
注:這在網絡上將非常困難,必須小心使用。Flood ping 命令僅僅 root 用戶可以使用。-f 標志與 -i Wait 標志不兼容。
-I a.b.c.d 指定被 a.b.c.d 標明的接口將被用于向外的 IPv4 多點廣播。-I 標志是大寫的 i 。
-o interface 指出 interface 將被用于向外的 IPv6 多點廣播。接口以 “en0”, “tr0”等的形 式指定。
-i Wait 在每個信息包發送之間等待被 Wait 變量指定的時間(秒數)。缺省值是在每個 信息包發送之間等待 1 秒。這個選項與 -f 標志不兼容。
-L 對多點廣播 ping 命令禁用本地回送。
-l Preload 在進入正常行為模式(每秒 1 個)前盡快發送 Preload 變量指定數量的信息 包。-l 標志是小寫的 L。
-n 指定僅輸出數字。不企圖去查尋主機地址的符號名。
-p Pattern 指定用多達 16 個“填充”字節去填充你發送的信息包。這有利于診斷網絡上依 賴數據的問題。例如,-p ff 全部用 1 填充信息包。
-q 指定靜默輸出。除了在啟動和結束時顯示總結行外什么也不顯示。
-r 忽略路由表直接送到連接的網絡上的主機上。如果 主機 不在一個直接連接的網絡上, ping 命令將產生一個錯誤消息。這個選項可以被用來通過一個不再有路由經過的接口去 ping 一個本地主機。
-R 指定記錄路由選項。-R 標志包括 ECHO_REQUEST 信息包中的 RECORD_ROUTE 選項,并且顯示返回信息包上的路由緩沖。
注:IP 頭僅僅大到適合 9 個這樣的路由。而且,許多主機和網關忽略這個選項。
-a addr_family 映射 ICMP 信息包的目的地址到 IPv6 格式,如果 addr_family 等于 “inet6”的話。
-s PacketSize 指定要發送數據的字節數。缺省值是 56,當和 8 字節的 ICMP 頭數據 合并時被轉換成 64 字節的 ICMP 數據。
-S hostname/IP addr 將 IP 地址用作發出的 ping 信息包中的源地址。在具有不止一個 IP 地址的主機上,可以使用 -S 標志來強制源地址為除了軟件包在其上發送的接口的 IP 地址外的任何地址。如果 IP 地址不是以下機器接口地址之一,則返回錯誤并且不進行任何 發送。
-T ttl 指定多點廣播信息包的生存時間為 ttl 秒。-v 請求詳細輸出,其中列出了除回送信號響應外接收到的 ICMP 信息。
參數
PacketSize 指定了要發送數據的字節數。缺省值是 56,當和 8 字節的 ICMP 頭數據 合并時被轉換成 64 字節的 ICMP 數據。包含這個參數是為了和以前的 ping 命令版本相 兼容。
Count 指定了要發送(接收)的回送信號請求的數目。包含這個參數是為了和 以前的 ping 命令版本相兼容。
下面具體看一下PING命令的使用
(1)首先,讓我們打開cmd,方法是點擊運行輸入cmd后回車,即可看到下圖的方框。
(2)我們要學習的是如何讓系統一直ping下去,那么我們就輸入ping 網址或IP -t再回車,例如ping 192.168.1.1 -t
(3)一直ping下去只有32個字節可能還無法滿足我們的要求,我們需要加大包ping才能看出問題,那么這個時候我們應該輸入ping 網址或IP -t -l 1000再回車,例如ping 192.168.1.1 -t -l 1000 表示連續ping 1000個字節
(4)但有時候我們沒時間看著它一個個PING,我們可以設置一下PING的數量,然后去喝杯茶再回來。那么這時我們應該輸入ping 網址或IP -t -n 100,例如ping 192.168.1.1 -t -n 100,表示我們讓系統ping完100個就可以收工了
(5)有時候我們還要查詢一下經過的路由數,那么我們可以再ping 網址或IP -r 9 如圖所示,最多只能填9個,表示經過的路由數
(6)當然,我們都知道路由器是分段轉發的,為了讓路由器整段轉發出去,我們可以輸入ping 網址或IP -f -t 效果如圖所示
命令為ping -l 65500,數據包的有效范圍從 0 到 65500。
ping命令還有許多有用的功能,供您參考:
ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p] [-4] [-6] target_name
-t,Ping 指定的主機,直到停止。若要查看統計信息并繼續操作,請鍵入 Ctrl+Break;若要停止,請鍵入 Ctrl+C。
-a,將地址解析為主機名。
-n count,要發送的回顯請求數。
-l size,發送緩沖區大小。
-f,在數據包中設置“不分段”標記(僅適用于 IPv4)。
-i TTL,生存時間。
-v TOS,服務類型(僅適用于 IPv4。該設置已被棄用,對 IP 標頭中的服務類型字段沒有任何影響)。
-r count,記錄計數躍點的路由(僅適用于 IPv4)。
-s count,計數躍點的時間戳(僅適用于 IPv4)。
-j host-list,與主機列表一起使用的松散源路由(僅適用于 IPv4)。
-k host-list, 與主機列表一起使用的嚴格源路由(僅適用于 IPv4)。
-w timeout,等待每次回復的超時時間(毫秒)。
-R,同樣使用路由標頭測試反向路由(僅適用于 IPv6)。如果使用此標頭,某些系統可能丟棄回顯請求。
-S srcaddr,要使用的源地址。
-c compartment,路由隔離艙標識符。
-p,Ping Hyper-V 網絡虛擬化提供程序地址。
-4,強制使用 IPv4。
-6,強制使用 IPv6。