網(wǎng)際網(wǎng)絡(luò)封包摸索器(Ping)是種內(nèi)建于Linux、Unix、及微軟Windows中的故障排除功能命令。
通過傳送資料包到特定IP地址,并等待響應(yīng).
如果得到快速回復(fù),就可知道網(wǎng)站寄出與接收等通訊功能正常;
如果回復(fù)時間慢,可能是網(wǎng)絡(luò)塞車。
你可在自己的局域網(wǎng)絡(luò)使用Ping,或是在網(wǎng)絡(luò)上Ping特定的網(wǎng)址。
Windows操作系統(tǒng)中,點選“開始”菜單中的“運行”,然后鍵入Ping,接著輸入IP地址。
也可下載免費或共享的Ping工具。
(TTL是IP協(xié)議包中的一個值,它告訴網(wǎng)絡(luò),數(shù)據(jù)包(例如ICMP包)在網(wǎng)絡(luò)中的時間是否太長而應(yīng)被丟棄。有很多原因使包在一定時間內(nèi)不能被傳遞到目的地。例如,不正確的路由表可能導(dǎo)致包的無限循環(huán)。一個解決方法就是在一段時間后丟棄這個包,然后給發(fā)送者一個報文,由發(fā)送者決定是否要重發(fā)。TTL的初值通常是系統(tǒng)缺省值,是包頭中的8位的域。TTL的最初設(shè)想是確定一個時間范圍,超過此時間就把包丟棄。由于每個路由器都至少要把TTL域減一,TTL通常表示包在被丟棄前最多能經(jīng)過的路由器個數(shù)。當記數(shù)到0時,路由器決定丟棄該包,并發(fā)送一個ICMP報文給最初的發(fā)送者。)
舉例:
ping www.baidu.com -t
得到:
Reply from 220.181.27.5: bytes=32 time=54ms TTL=53
Reply from 220.181.27.5: bytes=32 time=54ms TTL=53
Reply from 220.181.27.5: bytes=32 time=54ms TTL=53
Reply from 220.181.27.5: bytes=32 time=54ms TTL=53
(其中 -t 可以得到連續(xù)的檢測)
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] │ [-k computer-list] [-w timeout] destination-list
Options:
-t Ping the specified host until stopped.To see statistics( 統(tǒng)計信息)and(并) continue - type Control-Break;To stop - type Control-C.
不停的ping地方主機,直到你按下Control-C。
此功能沒有什么特別的技巧,不過可以配合其他參數(shù)使用,將在下面提到。
-a Resolve addresses to hostnames.(address轉(zhuǎn)化為 hostnames)
解析計算機NetBios(網(wǎng)絡(luò)輸入輸出系統(tǒng))名。
示例:
C:\>ping -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<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Ping statistics for 192.168.1.21:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
從上面就可以知道IP為192.168.1.21的計算機NetBios名為iceblood.yofor.com。
-n count Number of echo requests to send.
發(fā)送count指定的Echo數(shù)據(jù)包數(shù)。
在默認情況下,一般都只發(fā)送四個數(shù)據(jù)包,通過這個命令可以自己定義發(fā)送的個數(shù),對衡量網(wǎng)絡(luò)速度很有幫助,比如我想測試發(fā)送50個數(shù)據(jù)包的返回的平均時間為多少,最快時間為多少,最慢時間為多少就可以通過以下獲知:
C:\>ping -n 50 202.103.96.68
Pinging 202.103.96.68 with 32 bytes of data:
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Request timed out.
………………
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Ping statistics for 202.103.96.68:
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip times in milli-seconds:
Minimum = 40ms, Maximum = 51ms, Average = 46ms
從以上我就可以知道在給202.103.96.68發(fā)送50個數(shù)據(jù)包的過程當中,返回了48個,其中有兩個由于未知原因丟失,這48個數(shù)據(jù)包當中返回速度最快為40ms,最慢為51ms,平均速度為46ms。
-l size Send buffer size.
定義echo數(shù)據(jù)包大小。
在默認的情況下windows的ping發(fā)送的數(shù)據(jù)包大小為32byt,我們也可以自己定義它的大小,但有一個大小的限制,就是最大只能發(fā)送65500byt,也許有人會問為什么要限制到65500byt,因為Windows系列的系統(tǒng)都有一個安全漏洞(也許還包括其他系統(tǒng))就是當向?qū)Ψ揭淮伟l(fā)送的數(shù)據(jù)包大于或等于65532時,對方就很有可能當機(死機,當機:英文叫做Shutdown,口語里面我們簡單的把停掉機器叫做down機,轉(zhuǎn)換為漢字是“宕機”,但很多人都叫做“當機”,雖然不規(guī)范但卻流行。
down就是up的反義,就是電腦不能正常工作了,包括一切原因。
***當機有兩種不同的含義需要區(qū)別對待。***
?。?)一般情況下指的就是計算機主機出現(xiàn)意外故障而死機。(這是臺灣地區(qū)的叫法,由于在計算機發(fā)展的初期,臺灣和大陸處于嚴重的隔離狀態(tài),兩地學(xué)術(shù)交流不往來,使之發(fā)生了兩地各自發(fā)展的現(xiàn)象,在計算機中術(shù)語中有許多不同,如“程序”,臺灣叫“程式”,“字節(jié)”臺灣叫“位元”,就連漢字碼也不一樣,大陸用“國標(GB)碼”,臺灣用“BIG5碼”。“軟件”港澳臺說“軟體”)港澳臺粵那邊多這么說。
?。?)其次,一些服務(wù)器例如數(shù)據(jù)庫死鎖也可以稱為當機,一切服務(wù)器的某些服務(wù)掛掉了,就可以這么說。香港、臺灣那邊的人都叫當機,就是死機。比如最近所說的“MSN昨晚當機影響900萬用戶登陸原因仍不明”其中當機就指的是msn服務(wù)器維修等故障導(dǎo)致不能登錄使用。這個是前一點中的當機的含義是完全不同的。)所以微軟公司為了解決這一安全漏洞于是限制了ping的數(shù)據(jù)包大小。雖然微軟公司已經(jīng)做了此限制,但這個參數(shù)配合其他參數(shù)以后危害依然非常強大,比如我們就可以通過配合-t參數(shù)來實現(xiàn)一個帶有攻擊性的命令:(以下介紹帶有危險性,僅用于試驗,請勿輕易施于別人機器上,否則后果自負)
C:\>ping -l 65500 -t 192.168.1.21
Pinging 192.168.1.21 with 65500 bytes of data:
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
………………
這樣它就會不停的向192.168.1.21計算機發(fā)送大小為65500byt的數(shù)據(jù)包,如果你只有一臺計算機也許沒有什么效果,但如果有很多計算機那么就可以使對方完全癱瘓,我曾經(jīng)就做過這樣的試驗,當我同時使用10臺以上計算機ping一臺Win2000Pro系統(tǒng)的計算機時,不到5分鐘對方的網(wǎng)絡(luò)就已經(jīng)完全癱瘓,網(wǎng)絡(luò)嚴重堵塞,HTTP和FTP服務(wù)完全停止,由此可見威力非同小可。
-f Set Don't Fragment(碎片、分段)flag in packet.
在數(shù)據(jù)包中發(fā)送“不要分段”標志。
在一般你所發(fā)送的數(shù)據(jù)包都會通過路由分段再發(fā)送給對方,加上此參數(shù)以后路由就不會再分段處理。
-i TTL Time To Live.
指定TTL值在對方的系統(tǒng)里停留的時間。
此參數(shù)同樣是幫助你檢查網(wǎng)絡(luò)運轉(zhuǎn)情況的。
-v TOS Type Of Service.
將“服務(wù)類型”字段設(shè)置為 tos 指定的值。
-r count Record route for count hops.
在“記錄路由”字段中記錄傳出和返回數(shù)據(jù)包的路由。
在一般情況下你發(fā)送的數(shù)據(jù)包是通過一個個路由才到達對方的,但到底是經(jīng)過了哪些路由呢?通過此參數(shù)就可以設(shè)定你想探測經(jīng)過的路由的個數(shù),不過限制在了9個,也就是說你只能跟蹤到9個路由,如果想探測更多,可以通過其他命令實現(xiàn),我將在以后的文章中給大家講解。以下為示例:
C:\>ping -n 1 -r 9 202.96.105.101 (發(fā)送一個數(shù)據(jù)包,最多記錄9個路由)
Pinging 202.96.105.101 with 32 bytes of data:
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
Route: 202.107.208.187 ->
202.107.210.214 ->
61.153.112.70 ->
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這幾個路由。
-s count Timestamp for count hops.
指定 count 指定的躍點數(shù)的時間戳。
(數(shù)字時間戳技術(shù)就是數(shù)字簽名技術(shù)一種變種的應(yīng)用。在電子商務(wù)交易文件中,時間是十分重要的信息。在書面合同中,文件簽署的日期和簽名一樣均是十分重要的防止文件被偽造和篡改的關(guān)鍵性內(nèi)容。數(shù)字時間戳服務(wù)(DTS:digita1 time stamp service)是網(wǎng)上電子商務(wù)安全服務(wù)項目之一,能提供電子文件的日期和時間信息的安全保護。
時間戳(time-stamp)是一個經(jīng)加密后形成的憑證文檔,它包括三個部分:
?。?)需加時間戳的文件的摘要(digest);
?。?)DTS收到文件的日期和時間;
(3)DTS的數(shù)字簽名。
一般來說,時間戳產(chǎn)生的過程為:用戶首先將需要加時間戳的文件用Hash編碼加密形成摘要,然后將該摘要發(fā)送到DTS,DTS在加入了收到文件摘要的日期和時間信息后再對該文件加密(數(shù)字簽名),然后送回用戶。
書面簽署文件的時間是由簽署人自己寫上的,而數(shù)字時間戳則不然,它是由認證單位DTS來加的,以DTS收到文件的時間為依據(jù)。)
此參數(shù)和-r差不多,只是這個參數(shù)不記錄數(shù)據(jù)包返回所經(jīng)過的路由,最多也只記錄4個。
-j host-list Loose source route along host-list.
利用 computer-list 指定的計算機列表路由數(shù)據(jù)包。連續(xù)計算機可以被中間網(wǎng)關(guān)分隔(路由稀疏源)IP 允許的最大數(shù)量為 9。
(類似于距離矢量型路由選擇協(xié)議的metric值--跳數(shù)。
這個跳數(shù)的定義就是,到達目的網(wǎng)絡(luò)中途需要經(jīng)過幾個網(wǎng)段,也就是需要通過多少個路由器。(超過16個就認為不可到達)
路由器有兩個接口都可以到達你想要訪問的網(wǎng)絡(luò),那么它就會把路由表中metric值大的那條忽略,數(shù)據(jù)流轉(zhuǎn)發(fā)到metric值比較小的接口,因為他認為這條路徑的速度最快。 這個值就是躍點數(shù),相當于要跳躍多少個網(wǎng)絡(luò)段的意思。
稀疏源路由 就是系統(tǒng)內(nèi)部確立的路由政策和躍點數(shù)有關(guān)。根據(jù)優(yōu)先原則進行)
-k host-list Strict source route along host-list.
利用 computer-list 指定的計算機列表路由數(shù)據(jù)包。連續(xù)計算機不能被中間網(wǎng)關(guān)分隔(路由嚴格源)IP 允許的最大數(shù)量為 9。
-w timeout Timeout in milliseconds to wait for each reply.
指定超時間隔,單位為毫秒。
此參數(shù)沒有什么其他技巧。
ping命令的其他技巧:在一般情況下還可以通過ping對方讓對方返回給你的TTL值大小,粗略的判斷目標主機的系統(tǒng)類型是Windows系列還是UNIX/Linux系列,一般情況下Windows系列的系統(tǒng)返回的TTL值在100-130之間,而UNIX/Linux系列的系統(tǒng)返回的TTL值在240-255之間,當然TTL的值在對方的主機里是可以修改的,Windows系列的系統(tǒng)可以通過修改注冊表以下鍵值實現(xiàn):
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:000000ff
255---FF
128---80
64----40
32----20