2008年1月30日 星期三

Ping 的進階用法

加入書籤: HemiDemi MyShare Baidu Google Bookmarks Yahoo! My Web Del.icio.us Digg technorati furl

現在我就參照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指令也基本上被我COPY過來了,有什麼疑惑就跟帖
★PING參數(轉載)
ping參數
-a 將目標的機器標幟轉換為ip位址
-t 若使用者不人為中斷會不斷的ping下去
-c count 要求ping指令連續傳送資料包,直到發出並接收到count個請求
-d 為使用的套接字開啟偵錯狀態
-f 是一種快速方式ping。使得ping輸出資料包的速度和資料包從遠端主機返回一樣快,或者更快,達到每秒100次。在這種方式下,每個請求用一個句點表示。對於每一個回應列印一個空格鍵。
-i seconds 在兩次資料包傳送之間間隔一定的秒數。不能同-f一起使用。
-n 只使用數位方式。在一般情況下ping會試圖把IP位址轉換成主機名。這個選項要求ping列印IP位址而不去尋找用符號表示的名字。如果由於某種原因無法使用本機DNS伺服器這個選項就很重要了。
-p pattern 擁護可以通過這個選項標幟16 pad字元,把這些字元加入資料包中。當在網路中診斷與資料有關的錯誤時這個選項就非常有用。
-q 使ping只在開始和結束時列印一些概要訊息。
-R 把ICMP RECORD-ROUTE選項加入到ECHO_REQUEST資料包中,要求在資料包中記錄路由,這樣當資料返回時ping就可以把路由訊息列印出來。每個資料包只能記錄9個路由節點。許多主機忽略或者放棄這個選項。
-r 使ping指令旁路掉用於傳送資料包的正常路由表。
-s packetsize 使用戶能夠標幟出要傳送資料的字元數。預設是56個字元,再加上8個字元的ICMP資料頭,共64個ICMP資料字元。
-v 使ping處於verbose方式。它要ping指令除了列印ECHO-RESPONSE資料包之外,還列印其它所有返回的ICMP資料包。
再次補充
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
參數
-t
校驗與指定電腦的連接,直到用戶中斷。
-a
將位址解析為電腦名稱。
-n count
傳送由 count 指定數量的 ECHO 報文,預設值為 4。
-l length
傳送包含由 length 指定資料長度的 ECHO 報文。預設值為 64 字元,最大值為 8192 字元。
-f
在包中傳送「不分段」標誌。該包將不被路由上的網路閘道分段。
-i ttl
將「生存時間」字段設定為 ttl 指定的數值。
-v tos
將「服務檔案類型」字段設定為 tos 指定的數值。
-r count
在「記錄路由」字段中記錄發出報文和返回報文的路由。指定的 Count 值最小可以是 1,最大可以是 9 。
-s count
指定由 count 指定的轉發次數的時間郵票。
-j computer-list
經過由 computer-list 指定的電腦列表的路由報文。中間網路閘道可能分隔連續的電腦(鬆散的源路由)。允許的最大 IP 位址數目是 9 。
-k computer-list
經過由 computer-list 指定的電腦列表的路由報文。中間網路閘道可能分隔連續的電腦(嚴格源路由)。允許的最大 IP 位址數目是 9 。
-w timeout
以毫秒為服務機構指定超時間隔。
destination-list
指定要校驗連接的遠端電腦。
關於 Ping 的詳細資料
Ping--注意
Ping 指令通過向電腦傳送 ICMP 回應報文並且監聽回應報文的返回,以校驗與遠端電腦或本機電腦的連接。對於每個傳送報文, Ping 最多等待 1 秒,並列印傳送和接收把報文的數量。比較每個接收報文和傳送報文,以校驗其有效性。預設情況下,傳送四個回應報文,每個報文包含 64 字元的資料(週期性的大寫字母序列)。
可以使用 Ping 實用程序測試電腦名稱和 IP 位址。如果能夠成功校驗 IP 位址卻不能成功校驗電腦名稱,則說明名稱解析存在問題。這種情況下,要保証在本機 HOSTS 文件中或 DNS
資料庫中存在要查詢的電腦名稱。
下面顯示 Ping 輸出的示例:(Windows用戶可用:開始->執行,輸入"command" 彈出command視窗使用此指令)
C:\>ping ds.internic.net
Pinging ds.internic.net [192.20.239.132] with 32 bytes of data:
Reply from 192.20.239.132: bytes=32 time=101ms TTL=243
Reply from 192.20.239.132: bytes=32 time=100ms TTL=243
Reply from 192.20.239.132: bytes=32 time=120ms TTL=243
Reply from 192.20.239.132: bytes=32 time=120ms TTL=243
Copyright www.055.Cn. All rights reserved.

1 則留言:

Unknown 提到...

那上述說的攻擊性指令(ping -l 65500 -t xxxxxxxxxxx)是違法的嗎?因為ping指令本身一定是合法的 微軟都放進來了嘛!但我不確定使用這個攻擊性指令是否違法

EasyReadMore