近來每天都有人問我如何發揮Ping指令的功能,轉貼一篇,慎用!

來源: 脆麻花 2008-04-13 11:21:19 [] [舊帖] [給我悄悄話] 本文已被閱讀: 次 (6943 bytes)
本文內容已被 [ 脆麻花 ] 在 2008-04-13 11:32:25 編輯過。如有問題,請報告版主或論壇管理刪除.
nullnullPing命令詳解及使用小技巧 (慎用!某些用法可使網絡癱瘓)

  Windows下ping命令相信大家已經再熟悉不過了,但是能把ping的功能發揮到最大的人卻並不是很多,當然我也並不是說我可以讓ping發揮最大的功能,我也隻不過經常用ping這個工具,也總結了一些小經驗,現在和大家分享一下。

  現在我就參照ping命令的幫助說明來給大家說說我使用ping時會用到的技巧,ping隻有在安裝了TCP/IP協議以後才可以使用:

  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 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。  

  -n count Number of echo requests to send.
  發送count指定的Echo數據包數。

  在默認情況下,一般都隻發送四個數據包,通過這個命令可以自己定義發送的個數,對衡量網絡速度很有幫助,比如我想測試發送50個數據包的返回的平均時間為多少,最快時間為多少,最慢時間為多少就可以通過以下獲知:

  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發送50個數據包的過程當中,返回了48個,其中有兩個由於未知原因丟失,這48個數據包當中返回速度最快為40ms,最慢為51ms,平均速度為46ms。  

  -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服務完全停止,由此可見威力非同小可。  

  -f Set Don't Fragment flag in packet.
  在數據包中發送“不要分段”標誌。
  在一般你所發送的數據包都會通過路由分段再發送給對方,加上此參數以後路由就不會再分段處理。

  -i TTL Time To Live.
  指定TTL值在對方的係統裏停留的時間。
  此參數同樣是幫助你檢查網絡運轉情況的。  

  -v TOS Type Of Service.
  將“服務類型”字段設置為 tos 指定的值。  

  -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這幾個路由。  

  -s count Timestamp for count hops.
  指定 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.
  指定超時間隔,單位為毫秒。
  此參數沒有什麽其他技巧。  

  ping命令的其他技巧:在一般情況下還可以通過ping對方讓對方返回給你的TTL值大小,粗略的判斷目標主機的係統類型是Windows係列還是UNIX/Linux係列,一般情況下Windows係列的係統返回的TTL值在100-130之間,而UNIX/Linux係列的係統返回的TTL值在240-255之間,當然TTL的值在對方的主機裏是可以修改的,Windows係列的係統可以通過修改注冊表以下鍵值實現:

  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
  "DefaultTTL"=dword:000000ff
  255---FF
  128---80
  64----40
  32----20

  好了,ping命令也基本上完全講解完了,其中還有-j,-k參數我還沒有詳細說明,由於某些原因也包括我自己所收集的資料過少這裏也沒有向大家詳細介紹。

所有跟帖: 

嗬嗬,大概是他們想用來治藏獨的,不過效果並不強啊。 -π- 給 π 發送悄悄話 (92 bytes) () 04/13/2008 postreply 11:30:30

不要小看人民戰爭的效果,嘿嘿。 -墨鬥魚- 給 墨鬥魚 發送悄悄話 墨鬥魚 的博客首頁 (0 bytes) () 04/13/2008 postreply 17:13:10

還好windows沒有ping flood也做不成ping of death -asdqwe- 給 asdqwe 發送悄悄話 (0 bytes) () 04/13/2008 postreply 21:53:01

回複:嗬嗬,大概是他們想用來治藏獨的,不過效果並不強啊。 -我稀飯搗亂- 給 我稀飯搗亂 發送悄悄話 我稀飯搗亂 的博客首頁 (90 bytes) () 04/14/2008 postreply 15:24:06

沒啥用,很容易就被block住了 -ohlalala- 給 ohlalala 發送悄悄話 (0 bytes) () 04/15/2008 postreply 04:23:40

對嘛 80年代的招數了 -secondox- 給 secondox 發送悄悄話 (0 bytes) () 04/17/2008 postreply 02:37:53

ping is useless if icmp blocked -zneteng- 給 zneteng 發送悄悄話 (0 bytes) () 04/20/2008 postreply 11:01:01

請您先登陸,再發跟帖!

發現Adblock插件

如要繼續瀏覽
請支持本站 請務必在本站關閉/移除任何Adblock

關閉Adblock後 請點擊

請參考如何關閉Adblock/Adblock plus

安裝Adblock plus用戶請點擊瀏覽器圖標
選擇“Disable on www.wenxuecity.com”

安裝Adblock用戶請點擊圖標
選擇“don't run on pages on this domain”