ping命令詳解
對于Windows下ping命令相信大家已經再熟悉不過了,但是能把ping的功能發揮到最大的人卻并不是很多,當然我也并不是說我可以讓ping發揮最大的功能,我也只不過經常用ping這個工具,也總結了一些小經驗,現在和大家分享一下。
現在我就參照ping命令的幫助說明來給大家說說我使用ping時會用到的技巧,ping只有在安裝了TCP/IP協議以后才可以使用:
Options:
-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
不停的ping地方主機,直到你按下Control-C。
此功能沒有什么特別的技巧,不過可以配合其他參數使用,將在下面提到。
-a Resolve addresses to hostnames.
解析計算機NetBios名。
示例: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。
-l size Send buffer size.
定義echo數據包大小。
在默認的情況下windows的ping發送的數據包大小為32byt,我們也可以自己定義它的大小,但有一個大小的限制,就是最大只能發送65500byt,也許有人會問為什么要限制到65500byt,因為Windows系列的系統都有一個安全漏洞(也許還包括其他系統)就是當向對方一次發送的數據包大于或等于65532時,對方就很有可能擋機,所以微軟公司為了解決這一安全漏洞于是限制了ping的數據包大小。雖然微軟公司已經做了此限制,但這個參數配合其他參數以后危害依然非常強大,比如我們就可以通過配合-t參數來實現一個帶有攻擊性的命令:(以下介紹帶有危險性,僅用于試驗,請勿輕易施于別人機器上,否則后果自負)
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計算機發送大小為65500byt的數據包,如果你只有一臺計算機也許沒有什么效果,但如果有很多計算機那么就可以使對方完全癱瘓,我曾經就做過這樣的試驗,當我同時使用10臺以上計算機ping一臺Win2000Pro系統的計算機時,不到5分鐘對方的網絡就已經完全癱瘓,網絡嚴重堵塞,HTTP和FTP服務完全停止,由此可見威力非同小可。
r count Record route for count hops.
在“記錄路由”字段中記錄傳出和返回數據包的路由。
在一般情況下你發送的數據包是通過一個個路由才到達對方的,但到底是經過了哪些路由呢?通過此參數就可以設定你想探測經過的路由的個數,不過限制在了9個,也就是說你只能跟蹤到9個路由,如果想探測更多,可以通過其他命令實現,我將在以后的文章中給大家講解。以下為示例:
C:\>ping -n 1 -r 9 202.96.105.101 (發送一個數據包,最多記錄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這幾個路由。
ping命令的其他技巧:在一般情況下還可以通過ping對方讓對方返回給你的TTL值大小,粗略的判斷目標主機的系統類型是Windows系列還是UNIX/Linux系列,一般情況下Windows系列的系統返回的TTL值在100-130之間,而UNIX/Linux系列的系統返回的TTL值在240-255之間,TTL 字段值可以幫助我們識別操作系統類型。
UNIX 及類 UNIX 操作系統 ICMP 回顯應答的 TTL 字段值為 255
Compaq Tru64 5.0 ICMP 回顯應答的 TTL 字段值為 64
微軟 Windows NT/2K操作系統 ICMP 回顯應答的 TTL 字段值為 128
微軟 Windows 95 操作系統 ICMP 回顯應答的 TTL 字段值為 32
當然TTL的值在對方的主機里是可以修改的,Windows系列的系統可以通過修改注冊表以下鍵值實現:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:000000ff
255---FF
128---80
64----40
32----20
好了,ping命令也基本上完全講解完了,其中還有-j,-k參數我還沒有詳細說明,由于某些原因也包括我自己所收集的資料過少這里也沒有向大家詳細介紹,請大家見諒,如果在看了這篇文章的朋友當中有知道得比我更多的,以及其他使用技巧的也希望您能告訴我,并在此先謝過。