ping返回的各種信息的含義


 

ping返回的各種信息的含義

轉自:https://blog.csdn.net/wang_hong_jun/article/details/8741372

 

它是用來檢查網絡是否通暢或者網絡連接速度的命令。作為一個生活在網絡上的管理員或者黑客來說,ping命令是第一個必須掌握的DOS命令,它所利用的原理是這樣的:網絡上的機器都有唯一確定的IP地址,我們給目標IP地址發送一個數據包,對方就要返回一個同樣大小的數據包,根據返回的數據包我們可以確定目標主機的存在,可以初步判斷目標主機的操作系統等。下面就來看看它的一些常用的操作。先看看幫助吧,在DOS窗口中鍵入:ping /? 回車,出現如圖1所示的幫助畫面。 圖1
  在此,我們只掌握一些基本的很有用的參數就可以了. 
  -t 表示將不間斷向目標IP發送數據包,直到我們強迫其停止。試想,如果你使用100M的寬帶接入,而目標IP是56K的小貓,那么要不了多久,目標IP就因為承受不了這么多的數據而掉線,呵呵,一次攻擊就這么簡單的實現了。
  -l 定義發送數據包的大小,默認為32字節,我們利用它可以最大定義到65500字節。結合上面介紹的-t參數一起使用,會有更好的效果哦。
  -n 定義向目標IP發送數據包的次數,默認為3次。如果網絡速度比較慢,3次對我們來說也浪費了不少時間,因為現在我們的目的僅僅是判斷目標IP是否存在,那么就定義為一次吧。說明一下,如果-t 參數和 -n參數一起使用,ping命令就以放在后面的參數為標准,比如“ping IP -t -n 3”,雖然使用了-t參數,但並不是一直ping下去,而是只ping 3次。另外,ping命令不一定非得ping IP,也可以直接ping主機域名,這樣就可以得到主機的IP。
  下面我們舉個例子來說明具體用法,如圖2。這里time=2表示從發出數據包到接受到返回數據包所用的時間是2秒,從這里可以判斷網絡連接速度的大小 。從TTL的返回值可以初步判斷被ping主機的操作系統,之所以說“初步判斷”是因為這個值是可以修改的。這里TTL=32表示操作系統可能是win98。

 

我們以下面一個網絡為例:有A、B、C、D四台機子,一台路由RA,子網掩碼均為255.255.255.0,默認路由為192.168.0.1

 

 

 

1.在同一網段內

在主機A上運行“Ping192.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上運行“Ping192.168.1.4”后,開始跟上面一樣,到了怎樣得到MAC地址時,IP協議通過計算發現D機與自己不在同一網段內,就直接將交由路由處理,也就是將路由的MAC取過來,至於怎樣得到路由的MAC,跟上面一樣,先在ARP緩存表找,找不到就廣播吧。路由得到這個數據幀后,再跟主機D進行聯系,如果找不到,就向主機A返回一個超時的信息。

對Ping后返回信息的分析

1.Requesttimed out

這是大家經常碰到的提示信息,很多文章中說這是對方機器置了過濾ICMP數據包,從上面工作過程來看,這是不完全正確的,至少有下幾種情況。

(1)對方已關機,或者網絡上根本沒有這個地址:比如在上圖中主機A中PING192.168.0.7,或者主機B關機了,在主機A中PING192.168.0.5都會得到超時的信息。

(2)對方與自己不在同一網段內,通過路由也無法找到對方,但有時對方確實是存在的,當然不存在也是返回超時的信息。

(3)對方確實存在,但設置了ICMP數據包過濾(比如防火牆設置)。

怎樣知道對方是存在,還是不存在呢,可以用帶參數-a的Ping命令探測對方,如果能得到對方的NETBIOS名稱,則說明對方是存在的,是有防火牆設置,如果得不到,多半是對方不存在或關機,或不在同一網段內。

(4)錯誤設置IP地址

正常情況下,一台主機應該有一個網卡,一個IP地址,或多個網卡,多個IP地址(這些地址一定要處於不同的IP子網)。但如果一台電腦的“撥號網絡適配器”(相當於一塊軟網卡)的TCP/IP設置中,設置了一個與網卡IP地址處於同一子網的IP地址,這樣,在IP層協議看來,這台主機就有兩個不同的接口處於同一網段內。當從這台主機Ping其他的機器時,會存在這樣的問題:

A.主機不知道將數據包發到哪個網絡接口,因為有兩個網絡接口都連接在同一網段。

B.主機不知道用哪個地址作為數據包的源地址。因此,從這台主機去Ping其他機器,IP層協議會無法處理,超時后,Ping就會給出一個“超時無應答”的錯誤信息提示。但從其他主機Ping這台主機時,請求包從特定的網卡來,ICMP只須簡單地將目的、源地址互換,並更改一些標志即可,ICMP應答包能順利發出,其他主機也就能成功Ping通這台機器了。

2.Destinationhost Unreachable

(1)對方與自己不在同一網段內,而自己又未設置默認的路由,比如上例中A機中不設定默認的路由,運行Ping192.168.0.1.4就會出現“DestinationhostUnreachable”。

(2)網線出了故障

這里要說明一下“destinationhostunreachable”和“timeout”的區別,如果所經過的路由器的路由表中具有到達目標的路由,而目標因為其他原因不可到達,這時候會出現“timeout”,如果路由表中連到達目標的路由都沒有,那就會出現“destinationhostunreachable”。

3.BadIP address

這個信息表示您可能沒有連接到DNS服務器,所以無法解析這個IP地址,也可能是IP地址不存在。

4.Sourcequench received

這個信息比較特殊,它出現的機率很少。它表示對方或中途的服務器繁忙無法回應。

5.Unknownhost——不知名主機

這種出錯信息的意思是,該遠程主機的名字不能被域名服務器(DNS)轉換成IP地址。故障原因可能是域名服務器有故障,或者其名字不正確,或者網絡管理員的系統與遠程主機之間的通信線路有故障。

6.Noanswer——無響應

這種故障說明本地系統有一條通向中心主機的路由,但卻接收不到它發給該中心主機的任何信息。故障原因可能是下列之一:中心主機沒有工作;本地或中心主機網絡配置不正確;本地或中心的路由器沒有工作;通信線路有故障;中心主機存在路由選擇問題。

7.Ping127.0.0.1:127.0.0.1是本地循環地址

如果本地址無法Ping通,則表明本地機TCP/IP協議不能正常工作。

8.norout to host:網卡工作不正常。

9.transmitfailed,error code:10043網卡驅動不正常。

10.unknownhostname:DNS配置不正確。

ping返回值的詳細解答

ping是一個功能強大的命令,在檢查網絡連通性方面非常有用。

下面說說關於ping返回值的各種詳細意思.:

Replay form***.***.***.***:bytes=32time=238msTTL=128

其中bytes=32表示測試中發送的數據包大小是32個字節.

time=238ms表示與對方主機往返一次所用的時間time=238ms.

TTL=128可以識別對方的操作系統.

TTL值    對應操作系統

 

TTL值

對應操作系統

32

Windows系列

64

Linux

128

Win2000/NT

255

Unix

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM