基本信息
PING (Packet Internet Groper),網際網路包探索器,用於測試網路連線量的程式。Ping傳送一個ICMP(Internet Control Messages Protocol)即網際網路信報控制協定;回聲請求訊息給目的地並報告是否收到所希望的ICMPecho (ICMP回聲應答)。它是用來檢查網路是否通暢或者網路連線速度的命令。作為一個生活在網路上的管理員或者黑客來說,ping命令是第一個必須掌握的DOS命令,它所利用的原理是這樣的:利用網路上機器IP位址的唯一性,給目標IP位址傳送一個數據包,再要求對方返回一個同樣大小的數據包來確定兩台網路機器是否連線相通,時延是多少。
ping指的是端對端連通,通常用來作為可用性的檢查, 但是某些病毒木馬會強行大量遠程執行ping命令搶占你的網路資源,導致系統變慢,網速變慢。嚴禁ping入侵作為大多數防火牆的一個基本功能提供給用戶進行選擇。通常的情況下你如果不用作伺服器或者進行網路測試,可以放心的選中它,保護你的電腦。
工作流程
我們以下面一個網路為例:有A、B、C、D四台機子,一台路由RA,子網掩碼均為255.255.255.0,默認網關為192.168.0.1
1、在同一網段內
在主機A上運行“Ping 192.168.0.5”後,都發生了些什麼呢? 首先,Ping命令會構建一個固定格式的ICMP請求數據包,然後由ICMP協定將這個數據包連同地址“192.168.0.5”一起交給IP層協定(和ICMP一樣,實際上是一組後台運行的進程),IP層協定將以地址“192.168.0.5”作為目的地址,本機IP位址作為源地址,加上一些其他的控制信息,構建一個IP數據包,並想辦法得到192.168.0.5的MAC地址(物理地址,這是數據鏈路層協定構建數據鏈路層的傳輸單元——幀所必需的),以便交給數據鏈路層構建一個數據幀。關鍵就在這裡,IP層協定通過機器B的IP位址和自己的子網掩碼,發現它跟自己屬同一網路,就直接在本網路內查找這台機器的MAC,如果以前兩機有過通信,在A機的ARP快取表應該有B機IP與其MAC的映射關係,如果沒有,就發一個ARP請求廣播,得到B機的MAC,一併交給數據鏈路層。後者構建一個數據幀,目的地址是IP層傳過來的物理地址,源地址則是本機的物理地址,還要附加上一些控制信息,依據乙太網的介質訪問規則,將它們傳送出去。
主機B收到這個數據幀後,先檢查它的目的地址,並和本機的物理地址對比,如符合,則接收;否則丟棄。接收後檢查該數據幀,將IP數據包從幀中提取出來,交給本機的IP層協定。同樣,IP層檢查後,將有用的信息提取後交給ICMP協定,後者處理後,馬上構建一個ICMP應答包,傳送給主機A,其過程和主機A傳送ICMP請求包到主機B一模一樣。
2、不在同一網段內
在主機A上運行“Ping 192.168.1.4”後,開始跟上面一樣,到了怎樣得到MAC地址時,IP協定通過計算發現D機與自己不在同一網段內,就直接將交由路由處理,也就是將路由的MAC取過來,至於怎樣得到路由的MAC,跟上面一樣,先在ARP快取表找,找不到就廣播。路由得到這個數據幀後,再跟主機D進行聯繫,如果找不到,就向主機A返回一個逾時的信息。
測試網路
ping就是對一個網址傳送測試數據包,看對方網址是否有回響並統計回響時間,以此測試網路。
具體方式是,開始--運行--cmd,在調出的dos視窗下輸入 ping 空格 + 你要ping的網址,回車。
比如 “ pingXXX網址” 之後螢幕會顯示類似信息:
Ping XXX 網址[61.135.169.105] with 32 bytes of data:
Reply from 61.135.169.105: bytes=32 time=1244ms TTL=46
Reply from 61.135.169.105: bytes=32 time=1150ms TTL=46
Reply from 61.135.169.105: bytes=32 time=960ms TTL=46
Reply from 61.135.169.105: bytes=32 time=1091ms TTL=46
後面的time=1244ms 是回響時間,這個時間越小,說明你連線這個地址速度越快 。
PING測試
查看本地的TCP/IP協定是否設定好,輸入命令:ping 空格127.0.0.1 如果接受和傳送的數據都相等那就是完好的(如下圖):
圖片文字對應翻譯:
正在 Ping 127.****具有32位元組的數據:
來自 127.0.*** 的回覆: 位元組=32 時間〈1ms TTL=64
來自 ********************************************
來自 ********************************************
來自 ********************************************
127.0.0.1的ping 統計信息:
數據包:已傳送=4,已接收=4,丟失=0 〈0%丟失〉,
往返行程的估計時間以毫秒為單位:
最短=0ms,最長=0ms,平均=0ms
本機IP:
例如本機IP位址為:172.168.200.2。則執行命令Ping 172.168.200.2。如果網卡安裝配置沒有問題,則應有類似下列顯示:
Reply from 172.168.200.2 bytes=32 timeping -a 192.168.1.21
Pinging iceblood.yofor com [192.168.1.21] with 32 bytes of data:
Reply from 192.168.1.21: bytes=32 time
61.153.112.89 ->
202.96.105.149 ->
202.96.105.97 ->
202.96.105.101 ->
202.96.105.150 ->
61.153.112.90
Ping statistics for 202.96.105.101:
Packets: Sent = 1,Received = 1,Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 10ms,Maximum = 10ms,Average = 10ms
從上面我就可以知道從我的計算機到202.96.105.101一共通過了202.107.208.187 ,202.107.210.214,61.153.112.70,61.153.112.89,202.96.105.149,202.96.105.97這幾個路由。
指定 count 指定的躍點數的時間戳。
此參數和-r差不多,只是這個參數不記錄數據包返回所經過的路由,最多也只記錄4個。
-j host-list Loose source route along host-list.
利用 computer-list 指定的計算機列表路由數據包。連續計算機可以被中間網關分隔(路由稀疏源)IP 允許的最大數量為 9。
-k host-list Strict source route along host-list.
利用 computer-list 指定的計算機列表路由數據包。連續計算機不能被中間網關分隔(路由嚴格源)IP 允許的最大數量為 9。
-w timeout Timeout in milliseconds to wait for each reply.
指定逾時間隔,單位為毫秒。
此參數沒有什麼其他技巧。
另外 在win7中
-4 強行使用IPv4
- 6 強行使用IPv6
那樣在區域網路中 知道對方主機名字 就可知道他們的IPv4地址和IPv6地址了
ping命令的其他技巧:在一般情況下還可以通過ping對方讓對方返回給你的TTL值大小,粗略的判斷目標主機的系統類型是Windows系列還是UNIX/Linux系列,一般情況下Windows系列的系統返回的TTL值在100-130之間,而UNIX/Linux系列的系統返回的TTL值在240-255之間,當然TTL的值在對方的主機里是可以修改的,Windows系列的系統可以通過修改註冊表以下鍵值實現:
[HKEY_LOCAL_MACHINE\sys tem\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:000000ff
255---FF
128---80
64----40
32----20
Ping是個使用頻率極高的網路診斷程式,用於確定本地主機是否能與另一台主機交換(傳送與接收)數據包。根據返回的信息,你就可以推斷TCP/IP參數是否設定得正確以及運行是否正常。需要注意的是:成功地與另一台主機進行一次或兩次數據報交換並不表示TCP/IP配置就是正確的,你必須執行大量的本地主機與遠程主機的數據報交換,才能確信TCP/IP的正確性。
返回信息
Ping的返回信息有"Request Timed Out"、"Destination Net Unreachable"和"Bad IP address"還有"Source quench received"。
"Request Timed Out"這個信息表示對方主機可以到達到TIME OUT,這種情況通常是為對方拒絕接收你發給它的數據包造成數據包丟失。大多數的原因可能是對方裝有防火牆或已下線。
"Destination Net Unreachable"這個信息表示對方主機不存在或者沒有跟對方建立連線。這裡要說明一下"destination host unreachable"和"time out"的區別,如果所經過的路由器的路由表中具有到達目標的路由,而目標因為其它原因不可到達,這時候會出現"time out",如果路由表中連到達目標的路由都沒有,那就會出現"destination host unreachable"。
"Bad IP address" 這個信息表示你可能沒有連線到DNS伺服器所以無法解析這個IP位址,也可能是IP位址不存在。
"Source quench received"信息比較特殊,它出現的機率很少。它表示對方或中途的伺服器繁忙無法回應 。
測試網路
怎樣使用Ping這命令來測試網路連通呢?
連通問題是由許多原因引起的,如本地配置錯誤、遠程主機協定失效等,當然還包括設備等造成的故障。
首先我們講一下使用Ping命令的步驟。
使用Ping檢查連通性有六個步驟:
1、 使用ipconfig /all觀察本地網路設定是否正確;
2、 Ping127.0.0.1,127.0.0.1回送地址Ping回送地址是為了檢查本地的TCP/IP協定有沒有設定好;
3、Ping本機IP位址,這樣是為了檢查本機的IP位址是否設定有誤;
4、Ping本網網關或本網IP位址,這樣的是為了檢查硬體設備是否有問題,也可以檢查本機與本地網路連線是否正常;(在非區域網路中這一步驟可以忽略)
5、Ping本地DNS地址,這樣做是為了檢查本地DNS伺服器是否工作正常。
6、Ping遠程IP位址,這主要是檢查本網或本機與外部的連線是否正常 。
常見錯誤
在檢查網路連通的過程中可能出現一些錯誤,這些錯誤總的來說分為兩種最常見。
1、 Request Timed Out
"request time out"這提示除了在《PING(一)》提到的對方可能裝有防火牆或已關機以外,還有就是本機的IP不正確和網關設定錯誤。
①、IP不正確:
IP不正確主要是IP位址設定錯誤或IP位址衝突,這可以利用ipconfig /all這命令來檢查。在WIN2000下IP衝突的情況很少發生,因為系統會自動檢測在網路中是否有相同的IP位址並提醒你是否設定正確。在NT中不但會出現"request time out"這提示而且會出現"Hardware error"這提示信息比較特殊不要給它的提示所迷惑。
②、網關設定錯誤:這個錯誤可能會在第四個步驟出現。網關設定錯誤主要是網關地址設定不正確或網關沒有幫你轉發數據,還有就是可能遠程網關失效。這裡主要是在你Ping外部網路地址時出錯。錯誤表現為無法Ping外部主機返回信息"Request timeout"。
2、Destination Host Unreachable
當你在開始PING網路計算機時如果網路設備出錯它返回信息會提示"destination host unreachable"。如果區域網路中使用DHCP分配IP時,而碰巧DHCP失效,這時使用 PING命令就會產生此錯誤。因為在DHCP失效時客戶機無法分配到IP系統只有自設IP,它往往會設為不同子網的IP。所以會出現"Destination Host Unreachable"。另外子網掩碼設定錯誤也會出現這錯誤。
還有一個比較特殊就是路由返回錯誤信息,它一般都會在"Destination Host Unreachable"前加上IP位址說明哪個路由不能到達目標主機。這說明你的機器與外部網路連線沒有問題,但與某台主機連線存在問題。
指令信息
如右圖是linux的ping指令
與Windows的比較
描述:ping 程式使用 ICMP 協定的強制回顯請求數據報以使主機或網關傳送一份ICMP的回顯應答。回顯請求數據報("pings")含有一個IP及ICMP的報頭,後跟一個``時間值關鍵字''然後是一段任意長度的填充位元組用於把保持分組長度為16的整數倍。
Linux的ping語法和Windows的差不多
但是Linux的Ping數據包是64bytes的 而Windows的是32byteWindows下默認傳送四次數據包,完了之後自己結束,Linux下的ping程式默認不停傳送數據包,直到你手動停止。(停止指令是ctrl+c)
返回數據格式不同
ping[-dfnqrRv][-c][-i][-I][-l][-p][-s][-t][主機名稱或IP位址]
命令參數
-c count 在傳送(和接收)了正好數量為count的回顯應答分組後停止操作。在傳送了 count個分組後沒有收到任何分組的特別情況是傳送導致了終止(選程主機或網關不可達)。
-d 在所用的套接字上使用 SO_DEBUG 選項。
-f 以高速方式來作ping。以分組返回的速度來輸出其它分組或每秒輸出百次。當收到每個回顯應答並列印一個退格符時,對每個回顯請求都列印一個句點``.''。這可以快速顯示出丟棄了多少個分組,只有超級用戶可以用 這個選項。這(操作)對網路要求非常苛刻,應該慎重使用。
-i wait 在傳送每個分組時等待wait個秒數。預設值為每個分組等待一秒。此選項 與-f選項不能同時使用。
-l preload 如果指定preload,那么ping程式在開始正常運行模式前儘可能快地傳送分組。同樣只有超級用戶可以用這個選項。
-n 只以數字形式輸出信息。這樣就不嘗試去查找主機名了。
-p pattern 可以指定最多16個填充位元組用於保持分組長度為16的整數倍。在網路上診斷與數據相關問題時此選項很有用。例如``-pff''將使發出的分組都用全 1填充數據區。
-q 靜態輸出。在程式啟動和結束時只顯示摘要行。
-R 記錄路由。在回顯請求分組中包含記錄路由選項並在相應的分組返回時顯示路由緩衝區。注意IP首部的容量只能存放9條這樣的路由。很多主機忽略或禁用此選項。
-t 存活數值:設定存活數值TTL的大小。
-w timeout 指定等待每個回響的最長時間(單位是毫秒)。這個選項僅和-c選項一起才能起作用。它使ping命令以最長的逾時時間去等待應答(傳送最後一個信息包後)。
測試網路
linux的不是ipconfig /all而是ifconfig
怎樣使用Ping這命令來測試網路連通呢?
連通問題是由許多原因引起的,如本地配置錯誤、遠程主機協定失效等,當然還包括設備等造成的故障。
首先我們講一下使用Ping命令的步驟。
使用Ping檢查連通性有六個步驟:
1、 使用ifconfig觀察本地網路設定是否正確;
2、Ping127.0.0.1,127.0.0.1回送地址Ping回送地址是為了檢查本地的TCP/IP協定有沒有設定好;
3、Ping本機IP位址,這樣是為了檢查本機的IP位址是否設定有誤;
4、Ping本網網關或本網IP位址,這樣的是為了檢查硬體設備是否有問題,也可以檢查本機與本地網路連線是否正常;(在非區域網路中這一步驟可以忽略)
5、Ping本地DNS地址,這樣做是為了檢查DNS是否能夠將IP位址解析。
6、Ping遠程IP位址,這主要是檢查本網或本機與外部的連線是否正常 。
反饋信息
Request timed out
a.對方已關機:比如在上圖中主機A中PING 192.168.0.7,或者主機B關機了,在主機A中PING 192.168.0.5 都會得到逾時的信息。
b.對方與自己不在同一網段內,通過路由也無法找到對方,但有時對方確實是存在的,當然不存在也是返回逾時的信息。
c.對方確實存在,但設定了ICMP數據包過濾(比如防火牆設定)
怎樣知道對方是存在,還是不存在呢,可以用帶參數 -a 的Ping命令探測對方,如果能得到對方的NETBIOS名稱,則說明對方是存在的,是有防火牆設定,如果得不到,多半是對方不存在或關機,或不在同一網段內。
d.錯誤設定IP位址
正常情況下,一台主機應該有一個網卡,一個IP位址,或多個網卡,多個IP位址(這些地址一定要處於不同的IP子網)。但如果一台電腦的“撥號網路適配器”(相當於一塊軟網卡)的TCP/IP設定中,設定了一個與網卡IP位址處於同一子網的IP位址,這樣,在IP層協定看來,這台主機就有兩個不同的接口處於同一網段內。當從這台主機Ping其他的機器時,會存在這樣的問題:
A.主機不知道將數據包發到哪個網路接口,因為有兩個網路接口都連線在同一網段。
B.主機不知道用哪個地址作為數據包的源地址。因此,從這台主機去Ping其他機器,IP層協定會無法處理,逾時後,Ping 就會給出一個“逾時無應答”的錯誤信息提示。但從其他主機Ping這台主機時,請求包從特定的網卡來,ICMP只須簡單地將目的、源地址互換,並更改一些標誌即可,ICMP應答包能順利發出,其他主機也就能成功Ping通這台機器了。
Destination host Unreachable
對方與自己不在同一網段內,而自己又未設定默認的路由,或者網路上根本沒有這個地址,比如上例中A機中不設定默認的路由,運行Ping 192.168.1.4就會出現“Destination host Unreachable”。
網線出了故障
這裡要說明一下“destination host unreachable”和 “time out”的區別,如果所經過的路由器的路由表中具有到達目標的路由,而目標因為其他原因不可到達,這時候會出現“time out”,如果路由表中連到達目標的路由都沒有,那就會出現“destination host unreachable”。
Bad IP address
這個信息表示您可能沒有連線到DNS伺服器,所以無法解析這個IP位址,也可能是IP位址不存在。
Source quench received
這個信息比較特殊,它出現的機率很少。它表示對方或中途的伺服器繁忙無法回應。
Unknown host——不知名主機
這種出錯信息的意思是,該遠程主機的名字不能被域名伺服器(DNS)轉換成IP位址。故障原因可能是域名伺服器有故障,或者其名字不正確,或者網路管理員的系統與遠程主機之間的通信線路有故障。
No answer——無回響
這種故障說明本地系統有一條通向中心主機的路由,但卻接收不到它發給該中心主機的任何信息。故障原因可能是下列之一:中心主機沒有工作;本地或中心主機網路配置不正確;本地或中心的路由器沒有工作;通信線路有故障;中心主機存在路由選擇問題。
Ping 127.0.0.1:127.0.0.1是本地循環地址
如果本地址無法Ping通,則表明本地機TCP/IP協定不能正常工作。
no rout to host:網卡工作不正常
transmit failed,error code:10043網卡驅動不正常
unknown host name:DNS配置不正確
相關命令
CMD命令
1. gpedit.msc-----組策略
2. sndrec32-------錄音機
3. Nslookup-------IP位址偵測器
4. explorer-------打開資源管理器
5. logoff---------註銷命令
6. tsshutdn-------60秒倒計時關機命令
7. lusrmgr.msc----本機用戶和組
8. services.msc---本地服務設定
9. oobe/msoobe /a----檢查XP是否激活
10. notepad--------打開記事本
11. cleanmgr-------磁碟清理
12. net start messenger----開始信使服務
13. compmgmt.msc---計算機管理
14. net stop messenger-----停止信使服務
15. conf-----------啟動netmeeting
16. dvdplay--------DVD播放器
17. charmap--------啟動字元映射表
18. diskmgmt.msc---磁碟管理實用程式
19. calc-----------啟動計算器
20. dfrg.msc-------磁碟碎片整理程式
21. chkdsk.exe-----Chkdsk磁碟檢查
22. devmgmt.msc---設備管理器
23. regsvr32 /u *.dll----停止dll檔案運行
24. drwtsn32------ 系統醫生
25. rononce -p ----15秒關機
26. dxdiag---------檢查DirectX信息
27. regedit-------註冊表編輯器
28. Msconfig.exe---系統配置實用程式
29. rsop.msc-------組策略結果集
30. mem.exe--------顯示記憶體使用情況
31. regedit.exe----註冊表
32. winchat--------XP自帶區域網路聊天
33. progman--------程式管理器
34. winmsd---------系統信息
35. perfmon.msc----計算機性能監測程式
36. sfc /scannow-----掃描錯誤並復原
37. taskmgr-----任務管理器(2000/xp/2003
38. winver---------檢查Windows版本
39. wmimgmt.msc----打開windows管理體系結構(WMI)
40. wupdmgr--------windows更新程式
41. wscript--------windows腳本宿主設定
42. write----------寫字板
43. wiaacmgr-------掃瞄器和照相機嚮導
44.. Msconfig.exe---系統配置實用程式
45. mplayer2-------簡易widnows media player (媒體播放機)
46. mspaint--------畫圖板
47. mstsc----------遠程桌面連線
48. magnify--------放大鏡實用程式
49. mmc------------打開控制台
50. mobsync--------同步命令
51. dcomcnfg-------打開系統組件服務
52. ddeshare-------打開DDE共享設定
53. nslookup-------網路管理的工具嚮導
54. ntbackup-------系統備份和還原
55. narrator-------螢幕“講述人”
56. ntmsmgr.msc----移動存儲管理器
57. ntmsoprq.msc---移動存儲管理員操作請求
58. netstat -an----(TC)命令檢查接口
59. syncapp--------創建一個公文包
60. sysedit--------系統配置編輯器
61. sigverif-------檔案簽名驗證程式
62. shrpubw--------創建已分享檔案夾
63. secpol.msc-----本地安全策略
64. syskey---------系統加密,一旦加密就不能解開,保護windows xp系統的雙重密碼
65. services.msc---本地服務設定
66. Sndvol32-------音量控制程式
67. sfc.exe--------系統檔案檢查器
68. tourstart------xp簡介(安裝完成後出現的漫遊xp程式)
69. eventvwr-------事件查看器
70. eudcedit-------造字程式
71. packager-------對象包裝程式
72. regedit.exe----註冊表
73. regsvr32 /u zipfldr.dll------取消ZIP支持
74. cmd.exe--------CMD命令提示符
75. chkdsk.exe-----Chkdsk磁碟檢查
76. certmgr.msc----證書管理實用程式
77. cliconfg-------SQL SERVER 客戶端網路實用程式
78. Clipbrd--------剪貼簿查看器
79. ciadv.msc------索引服務程式
80. osk------------打開螢幕鍵盤
81. odbcad32-------ODBC數據源管理器
82. iexpress-------木馬捆綁工具,系統自帶
83. fsmgmt.msc-----已分享檔案夾管理器
84. utilman--------輔助工具管理器
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 命令版本相兼容。
示例
1. 要檢查網路和主機 canopus 的連線性,並且指定要傳送的回送信號請求的數目,請輸入:
ping -c 5 canopus
或者
ping canopus 56 5
類似下列的信息將被顯示:
PING canopus.austin.century com: (128.116.1.5): 56 data bytes
64.bytes from 128.116.1.5: icmp_seq=0 ttl=255 time=2 ms
64.bytes from 128.116.1.5: icmp_seq=1 ttl=255 time=2 ms
64.bytes from 128.116.1.5: icmp_seq=2 ttl=255 time=3 ms
64.bytes from 128.116.1.5: icmp_seq=3 ttl=255 time=2 ms
64.bytes from 128.116.1.5: icmp_seq=4 ttl=255 time=2 ms
----canopus.austin.century com PING Statistics----
5.packets transmitted,5 packets received,0% packet loss
round-trip min/avg/max = 2/2/3 ms
2. 要想獲取有關主機 lear 的信息,並且啟動套接字級別的調試,請輸入:
ping -d lear
類似下列的信息將被顯示:
PING lear.austin.century com: (128.114.4.18) 56 data bytes
64.bytes from 128.114.4.18: icmp_seq=0 ttl=255 time=6 ms
64.bytes from 128.114.4.18: icmp_seq=1 ttl=255 time=17 ms
64.bytes from 128.114.4.18: icmp_seq=2 ttl=255 time=6 ms
64.bytes from 128.114.4.18: icmp_seq=3 ttl=255 time=6 ms
64.bytes from 128.114.4.18: icmp_seq=4 ttl=255 time=6 ms
^C
----lear.austin.century com PING Statistics ----
5.packets transmitted,5 packets received,0% packet loss
round-trip min/avg/max = 6/8/17 ms
註:輸出將一直重複直到接收到中斷信號(Ctrl+C)。
3. 要獲取有關主機 opus 的信息,並且指定要傳送的位元組數,請輸入:
ping -s 2000 opus
或者
ping opus 2000
類似下列的信息將被顯示:
PING opus.austin.century com: (129.35.34.234): 2000 data bytes
2008 bytes from 129.35.34.234: icmp_seq=0 ttl=255 time=20 ms
2008 bytes from 129.35.34.234: icmp_seq=1 ttl=255 time=19 ms
2008 bytes from 129.35.34.234: icmp_seq=2 ttl=255 time=20 ms
2008 bytes from 129.35.34.234: icmp_seq=3 ttl=255 time=20 ms
2008 bytes from 129.35.34.234: icmp_seq=4 ttl=255 time=20 ms
2008 bytes from 129.35.34.234: icmp_seq=5 ttl=255 time=19 ms
2008 bytes from 129.35.34.234: icmp_seq=6 ttl=255 time=19 ms
^C
----opus.austin.century com PING Statistics----
7.packets transmitted,7 packets received,0% packet loss
round-trip min/avg/max = 19/19/20 ms
註:輸出將一直重複直到接收到中斷信號 (Ctrl+C)。
4. 要調用 flood-ping 選項給主機 stlopnor,請輸入:
ping -f stlopnor
類似下列的信息將被顯示:
Ping stlopnor.austin.century com: (129.35.34.234): 56 data bytes
.^C
----stlopnor.austin.century com PING Statistics ----
1098 packets transmitted,1097 packets received,0% packet loss
round-trip min/avg/max = 4/4/11
註:flood-ping 命令的輸出將一直重複,直到接收到中斷信號(Ctrl+C)。
5. 要指定傳送到主機 opus 信息包的傳送時間間隔為 5 秒,請輸入:
ping -i5 opus
類似下列的信息將被顯示:
PING opus.austin.century com: (129.35.34.234): 56 data bytes
64.bytes from 129.35.34.234: icmp_seq=0 ttl=255 time=5 ms
64.bytes from 129.35.34.234: icmp_seq=1 ttl=255 time=5 ms
64.bytes from 129.35.34.234: icmp_seq=2 ttl=255 time=6 ms
^C
----opus.austin.century com PING Statistics----
3.packets transmitted,3 packets received,0% packet loss
round-trip min/avg/max = 5/5/6 ms
註:輸出將一直重複,直到接收到中斷信號(Ctrl+C)。
6. 在進入正常行為模式前儘快傳送 Preload 變數指定的數量的信息包到主機 opus,請輸入:
ping -l 10 opus
類似下列的信息將被顯示:
PING opus.austin.century com: (129.35.34.234): 56 data bytes
64.bytes from 129.35.34.234: icmp_seq=0 ttl=255 time=9 ms
64.bytes from 129.35.34.234: icmp_seq=1 ttl=255 time=11 ms
64.bytes from 129.35.34.234: icmp_seq=2 ttl=255 time=16 ms
64.bytes from 129.35.34.234: icmp_seq=3 ttl=255 time=22 ms
64.bytes from 129.35.34.234: icmp_seq=4 ttl=255 time=26 ms
64.bytes from 129.35.34.234: icmp_seq=5 ttl=255 time=27 ms
64.bytes from 129.35.34.234: icmp_seq=6 ttl=255 time=30 ms
64.bytes from 129.35.34.234: icmp_seq=7 ttl=255 time=31 ms
64.bytes from 129.35.34.234: icmp_seq=8 ttl=255 time=33 ms
64.bytes from 129.35.34.234: icmp_seq=9 ttl=255 time=35 ms
64.bytes from 129.35.34.234: icmp_seq=10 ttl=255 time=36 ms
64.bytes from 129.35.34.234: icmp_seq=11 ttl=255 time=6 ms
64.bytes from 129.35.34.234: icmp_seq=12 ttl=255 time=6 ms
64.bytes from 129.35.34.234: icmp_seq=13 ttl=255 time=6 ms
64.bytes from 129.35.34.234: icmp_seq=14 ttl=255 time=7 ms
64.bytes from 129.35.34.234: icmp_seq=15 ttl=255 time=6 ms
^C
----opus.austin.century com PING Statistics----
16.packets transmitted,16 packets received,0% packet loss
round-trip min/avg/max = 6/19/36 ms
註:輸出將一直重複,直到接收到中斷信號(Ctrl+C)。
7. 要診斷網路上依賴數據的問題,請輸入:
ping -p ff opus
這個命令用全為 1 的填充模式傳送信息包給主機 opus。類似下列的信息將被顯示:
PATTERN: 0xff
PING opus.austin.century com: (129.35.34.234): 56 data bytes
64.bytes from 129.35.34.234: icmp_seq=0 ttl=255 time=5 ms
64.bytes from 129.35.34.234: icmp_seq=1 ttl=255 time=5 ms
64.bytes from 129.35.34.234: icmp_seq=2 ttl=255 time=5 ms
64.bytes from 129.35.34.234: icmp_seq=3 ttl=255 time=6 ms
64.bytes from 129.35.34.234: icmp_seq=4 ttl=255 time=5 ms
^C
----opus.austin.century com PING Statistics----
5.packets transmitted,5 packets received,0% packet loss
round-trip min/avg/max = 5/5/6 ms
註:輸出將一直重複,直到接收到中斷信號(Ctrl+C)。
8. 要指定靜默輸出,請輸入:
ping -q bach
僅僅類似下列的總結信息將被顯示:
PING bach.austin.century com: (129.35.34.234): 56 data bytes
^C
----bach.austin.century com PING Statistics----
5.packets transmitted,5 packets received,0% packet loss
round-trip min/avg/max = 5/5/8 ms
註:雖然沒有顯示,信息包的輸出將一直繼續,直到接收到中斷信號(Ctrl+C)。
故障檢查
事實上,無論是什麼類型的故障診斷工具,在一些特殊網路故障面前都會顯得無能為力;此時,我們所能做的就是依靠自己,從使用 Ping命令開始,手工逐步排查故障原因。
首先對本地工作站的循環地址127.0.0.1進行ping測試。當遇到一些無法直接找到故障原因的特殊網路故障時,我們首先需要使用Ping命令測試一下本地工作站的循環地址127.0.0.1能否被正常Ping通,倘若該地址無法被正常Ping通的話,那么說明本地工作站的 TCP/IP協定程式受到了破壞,或者 網卡設備發生了損壞。
此時,我們不妨打開本地工作站系統的設備管理器視窗,從中找到網卡設備選項,並用滑鼠右鍵單擊該選項,從彈出的快捷選單中執行“屬性”命令,打開網卡設備的屬性設定視窗,在該視窗的“常規”標籤頁面中我們就能看到當前的網卡工作狀態是否正常了。
當發現網卡工作狀態正常的話,那很有可能是本地工作站的 TCP/IP協定程式受到了破壞,此時我們不妨打開本地連線屬性設定視窗,選中並刪除該設定視窗中的TCP/IP協定選項,之後再重新安裝一下TCP/IP協定程式,相信這么一來本地工作站的循環地址127.0.0.1就能被正常Ping通了。
其次對本地工作站的IP位址進行ping測試。在確認127.0.0.1地址能夠被Ping通的情況下,我們繼續使用Ping命令測試一下本地工作站的靜態IP位址是否能被正常Ping通,倘若該地址不能被正常Ping通的話,那么說明本地工作站的 網卡參數沒有設定正確,或者 網卡驅動程式不正確,也有可能是本地的 路由表受到了破壞。
此時我們可以重新檢查一下本地工作站的網路參數是否設定正確,如果在網路參數設定正確的情況下仍然無法Ping通本地IP位址的話,我們最好重新安裝一下網卡設備的原裝驅動程式,相信這么一來我們就能正確Ping通本地工作站的靜態IP位址了。一旦本地工作站的靜態IP位址被順利Ping通的話,那就表明本地工作站已經能夠加入到區域網路網路中了。
接著對本地區域網路的默認網關地址進行ping測試。由於本地工作站是通過網關與區域網路中的其他工作站進行相互通信的,只有本地工作站與默認網關之間連線正常,才能確保本地工作站與其他工作站通信正常。倘若網關地址能被正常Ping通的話,那就表明本地工作站可以與區域網路中的其他工作站進行正常通信。
要是Ping命令操作不成功的話,那很有可能是網關設備自身存在問題,或者是本地工作站與網關之間的線路連線不正常,也有可能是本地工作站與網關沒有設定成同一個子網中。此時,我們可以先用專業的線纜測試工具測試一下網路線纜的連通性,線上纜連通性正常的情況下,再檢查本地工作站的網路參數是否與網關的參數設定成同一個子網中。
倘若網路參數設定正確的話,我們再從其他工作站Ping一下網關地址,以便確認網關自身是否存在原因,如果區域網路中的其他工作站也無法Ping通網關的話,那多半是網關設備自身存在問題,這個時候我們只要將故障排查重點鎖定在網關設備上就可以了。
下面對區域網路中任意一台遠程工作站的IP位址進行ping測試,以便檢驗本地工作站能否通過網關設備與區域網路中的其他工作站進行通信。要是我們發現遠程工作站的IP位址無法Ping通的話,那很有可能是遠程工作站自身無法回響,或者是遠程工作站與網關設備之間的線路連線出現了問題,此時我們可以將網路故障的排查重點聚焦到遠程工作站上或者是區域網路的網路設備上。
最後對區域網路的遠程工作站主機名稱進行ping測試。在確認能夠Ping通遠程工作站IP位址的情況下,仍然出現無法訪問遠程工作站內容的時候,我們就有必要進行這一項測試操作。如果該主機名稱無法被Ping成功的話,那很有可能是DNS解析出現了問題,而不是網路連線發生了故障,此時我們不妨把故障檢查重點鎖定在DNS伺服器上。
小提示:為了有效地找出網路故障原因,我們在使用Ping命令進行測試檢查時,儘量確保區域網路中只配置了一個網關且要ping的主機保持正常的使用狀態,同時確保本地工作站沒有啟用IP安全設定策略,這樣可以保證Ping命令能夠獲得正確的測試結果
命令技巧
".0"可以有條件省略
大家常用“ping 127.0.0.1”命令在本機上做迴路測試,用來驗證本機的TCP/IP協定簇是否被正確安裝。但你發現了嗎?使用“ping 127.1”這個命令也能得到同樣的測試結果(如圖),其實“ping 127.1”和“ping 127.0.0.1”這兩條命令是一樣的,都是在進行迴路測試。為什麼會這樣呢?這就是Ping命令套用中IP位址的使用技巧。大家都知道,IP位址由32位二進制數字組成,為了方便大家記憶,將每8位二進制數字換算成十進制數字,因此就形成了容易記憶的由四部分十進制數字組成的IP位址(如127.0.0.1)。由於,Windows作業系統具有自動填充“.0”的功能,因此我就可將“127.0.0.1”變為“127.1”。但是,這個“.0”的省略是有條件限制的,並不能任意省略。在Ping命令的套用中,只能將在IP位址的最後一部分十進制數字前出現的一個或多個“.0”省略,如把“ping 127.0.0.1”命令改寫成“ping 127.1”。如果這一個或多個 “.0”沒有緊挨著最後一部分的十進制數字,而是在其他位置,則這個“.0”不能省略,如“ping 202.0.96.1”就不能寫成“ping 202.96.1”。這是因為“ping 202.96.1”返回的結果是“202.96.0.1”的應答信息,而不是“202.0.96.1”的應答信息。
數字串代替IP位址
在Ping命令中,還可以使用數字串代替IP位址,你相信嗎?運行“ping 3658906394”命令,你會看到“218.22.123.26”這個IP位址的返回信息。為什麼會這樣呢?其實,“3658906394”就是IP位址“218.22.123.26”的另一種表示形式。當然,也可按同樣的方法Ping其他的IP位址。字元串是如何轉換而來的呢?其實並不複雜,以“218.22.123.26”這個IP位址為例,IP位址轉換成數字串方法如下:先將“218.22.123.26”轉換為十六進制“DA.16.7B.1A”,然後去掉小數點後,變為“DA167B1A”,最後將這個十六進制數轉換為十進制“3658906394”,那么“218.22.123.26”就變為“3658906394”了。其他IP位址轉換為數字串也是使用同樣的方法。提示:在某些區域網路環境中,使用“Ping+數字串”命令可能會失敗,出現提示信息“Unknown host數字串”,這是因為該數字串被解析成主機名了,而不是IP位址。因此,掌握了上述技巧後,網管在進行網路測試或維護時,可以熟練運用“省略”方式,減輕Ping命令的字元輸入量,提高工作效率。同時,使用數字串代替IP位址也可迷惑好奇心強的普通用戶,以免他們胡亂設定。