Ping (Packet Internet Groper),因特網包探索器是一種計算機網絡管理軟件實用程序,用于測試網絡上主機的可達性。它幾乎適用于所有具有網絡功能的操作系統,包括大多數嵌入式網絡管理軟件。
Ping 通過互聯網控制消息協議(ICMP)數據包進行操作。Ping涉及向目標主機發送ICMP 回顯請求并等待ICMP 回顯答復。該程序報告錯誤、數據包丟失和結果的統計摘要,通常包括最小值、最大值、平均往返時間和平均值的標準偏差。
舉例圖片操作系統環境為windows10,可在cmd鍵入ping /? 查看ping的使用幫助。
ping 目標IP地址:用于檢測網絡的連通情況和分析網絡問題;
ping -t :不間斷的ping目標主機,直到管理員鍵入crtl c停止命令;
ping -n:默認情況下,只發送四個數據包,通過這個參數可以自定義發送的個數,對于需要長時間分析網絡情況有所幫助;
ping -l size:指定發送到目標主機的數據包大小,可以用于測試鏈路承載質量或者測試路由器轉發大數據包的性能.
Ping 目標域名baidu.com 數據包大小為1024字節,數據數為10個。
使用華為模擬器ensp,模擬網絡結構局域網和跨局域網,實現數據通信,概述兩種網絡環境的訪問過程:
局域網一(左側部分)內部的網絡通信,局域網內部主機數據轉發過程:
1、局域網內同段IP地址之間ping,首先查詢本機的arp表象,arp表象存在目標地址的記錄,直接發起icmp的請求,互相通信不需要經過網關。
2、如果arp表象不存在目標地址的記錄,對目標主機發起arp廣播請求獲取mac地址,獲取到mac地址后發起icmp請求。
3、跨網段(跨路由器)訪問,首先查詢arp表象,路由器發現目標mac地址為路由器本身,路由器查詢自身路由表進行數據轉發。
4、局域網內數據通信的數據包(手動清空了arp表):
廣播請求mac地址,獲取到mac地址后發起和收到icmp數據包。
腳步內容分享如下:
@echo off
color 0A
echo %date% >~datetime.txt
for /f "eol=tokens=1-5 delims=/ " %%i in (~datetime.txt) do (
set year=%%i
set month=%%j
set day=%%k
set week=%%l
)
echo %time% >>~datetime.txt
for /f "eol=tokens=1-4 delims=.: " %%i in (~datetime.txt) do (
set hour=%%i
set minute=%%j
set second=%%k
set week=%%l
)
del ~datetime.txt
if %hour% lss 10 set hour=0%hour%
set today=%year%%month%%day%
set tod=%hour%%minute%%second%
set timestamp=%today%%tod%.txt
echo 正在進行Ping探測,請稍候…… by 山海有情,天遼地寧
echo.
echo 路由測試結果: >> %timestamp%
echo. >> %timestamp%
echo 測試開始時間: %date% %time% >> %timestamp%
echo.
echo. >> %timestamp%
FOR /F "eol=[ tokens=1,2 delims=" %%a in (測試點.txt) do echo 正在測試%%b…… & echo 目的測試點: %%b[%%a] >> %timestamp% & ping -n 5 %%a >> %timestamp% & echo %%b測試完畢! & echo. & echo. >> %timestamp%
echo 測試結束時間: %date%%time% >> %timestamp%
echo 全部測試完畢!
pause
探測演示圖:
ing 是一個常用于網絡診斷的命令行工具,一般我們會使用 ping 來判斷網絡的連通性,它的工作原理如下:
1.當你在終端中運行 ping 命令并指定目標主機的IP地址或域名時,計算機會創建一個特殊的ICMP (Internet Control MessageProtocol)Echo請求數據包。
這個數據包包含了一個特定的標識符和序列號,用于跟蹤和識別請求和響應。
2.發出的 ICMP Echo 請求數據包會被發送到目標主機的IP地址。這個數據包會經過計算機到路由器、交換機等網絡設備,沿著到達目標主機的路徑傳輸。
3. 一旦目標主機收到 ICMP Echo 請求,它會生成一個 ICMP Echo 響應數據包,并將其返回給發送方。目標主機的響應包含了與請求包中相同的標識符和序列號,以便發送方能夠識別和匹配響應和請求。
4.發送方計算機接收到目標主機的 ICMP Echo 響應數據包。 同時ping 命令會記錄響應包的延遲時間 (通常以毫秒為單位),并顯示這些信息給用戶。
5. ping 命令通常會顯示有關 ICMP Echo 響應的信息,包括響應時間、丟包率等。 如果目標主機不可達或未響應, ping 命令會報告請求超時或丟失。
那么ping 命令工作在 OSI 七層網絡模型的哪一層呢?
從上面敘述的ping的工作原理我們世道,ping 使用的是 ICMP 協議。ICMP 協議既不是 TCP 也不是 UDP,TCP 和 UDP 是第四層,ICMP 比它們還要再低一層。
ping 命令工作在網絡模型的第三層,即網絡層。OSI 網絡模型模型(Open Systems Interconnection),該模型將網絡通信劃分為七個層次,分別是:
ping 命令使用 ICMP(Internet Control Message Protocol)協議來測試主機的可達性和測量往返時間(RTT)。ICMP 是 OSI 模型中的第三層協議,它通常用于網絡設備之間的錯誤報告和網絡狀態信息的傳遞。
ping 命令通過發送 ICMP Echo Request 請求并接收 ICMP Echo Reply 響應,以測試主機之間的連接狀態。
在不管安防工程還是弱電工程,與網絡的聯系也越來越密切了,網絡基礎知識中的網絡命令ping命令在項目中是使用頻率最高的,一般我們用的都是它的基本功能,今天和大家來詳細看下Ping命令的7個基礎用法,掌握了秒變大神!
1、ping命令基礎
2、ping -t的使用
3、ping -a的使用
4、ping -n的使用
5、ping -l size的使用
6、ping -r count的使用
7、如何批量ping 幾百到1000個ip地址
一、ping命令基礎介紹
在網絡中ping是一個十分強大的TCP/IP工具。它的作用主要為:
1、用來檢測網絡的連通情況和分析網絡速度
2、根據域名得到服務器IP
3、根據ping返回的TTL值來判斷對方所使用的操作系統及數據包經過路由器數量。
我們通常會用它來直接ping ip地址,來測試網絡的連通情況。
類如這種,直接ping ip地址或網關,ping通會顯示出以上數據,有朋友可能會問,bytes=32;time<1ms;TTL=128 這些是什么意思。
bytes值:數據包大小,也就是字節。
time值:響應時間,這個時間越小,說明你連接這個地址速度越快。
TTL值:Time To Live,表示DNS記錄在DNS服務器上存在的時間,它是IP協議包的一個值,告訴路由器該數據包何時需要被丟棄。
我們可以通過Ping返回的TTL值大小,粗略地判斷目標系統類型是Windows系列還是UNIX/Linux系列。
因此一般TTL值:
100~130ms之間,Windows系統 ;
240~255ms之間,UNIX/Linux系統。
當然,我們今天主要了解并不是這些,而是ping的其它參考。
ping命令除了直接ping網絡的ip地址,驗證網絡暢通和速度之外,它還有這些用法。
二、ping -t的使用
不間斷地Ping指定計算機,直到管理員中斷。
這就說明電腦連接路由器是通的,網絡效果很好。下面按按住鍵盤的Ctrl+C終止它繼續ping下去,就會停止了,會總結出運行的數據包有多少,通斷的有多少了。
三、ping -a的使用
ping-a解析計算機名與NetBios名。就是可以通過ping它的ip地址,可以解析出主機名。當你遇到一個ip,卻不知道他是那個設備時,這時你可以通過ping -a知道它的主機名。
四、ping -n的使用
在默認情況下,一般都只發送四個數據包,通過這個命令可以自己定義發送的個數,對衡量網絡速度很有幫助,比如我想測試發送10個數據包的返回的平均時間為多少,最快時間為多少,最慢時間為多少就可以通過以下獲知:
從以上我就可以知道在給47.93.187.142發送10個數據包的過程當中,返回了10個,沒有丟失,這10個數據包當中返回速度最快為32ms,最慢為55ms,平均速度為37ms。說明我的網絡良好。
如果對于一些不好的網絡,比如監控系統中非常卡頓,這樣測試,返回的結果可能會顯示出丟失出一部分,如果丟失的比較多的話,那么就說明網絡不好,可以很直觀的判斷出網絡的情況。
五、ping -l size的使用
ping-l size:發送size指定大小的到目標主機的數據包。
在默認的情況下Windows的ping發送的數據包大小為32byt,最大能發送65500byt。當一次發送的數據包大于或等于65500byt時,將可能導致接收方計算機宕機。所以微軟限制了這一數值;這個參數配合其它參數以后危害非常強大,比如攻擊者可以結合-t參數實施DOS攻擊。(所以它具有危險性,不要輕易向別人計算機使用)。
例如:ping -l 65500 -t 211.84.7.46
會連續對IP地址執行ping命令,直到被用戶以Ctrl+C中斷。
這樣它就會不停的向211.84.7.46計算機發送大小為65500byt的數據包,如果你只有一臺計算機也許沒有什么效果,但如果有很多計算機那么就可以使對方完全癱瘓,網絡嚴重堵塞,由此可見威力非同小可。
六、ping -r count 的使用
這個命令在“記錄路由”字段中記錄傳出和返回數據包的路由,探測經過的路由個數,但最多只能跟蹤到9個路由。
ping -n 1 -r 9 202.102.224.25 (發送一個數據包,最多記錄9個路由)
將經過 9個路由都顯示出來了,可以看圖。也就是說可以跟蹤ip地址所經過的9個路由,在檢查故障時可以快速定位。
七、如何同時批量ping多個ip地址
1、ping一個網段
對于一個網段ip地址眾多,如果單個檢測實在麻煩,那么我們可以直接批量ping網段檢測,那個ip地址出了問題,一目了然。
先看代碼,直接在命令行窗口輸入:
for /L %D in (1,1,255) do ping 10.168.1.%D
IP地址段修改成你要檢查的IP地址段。
當輸入批量命令后,那么它就自動把網段內所有的ip地址都ping完為止。
那么這段“for /L %D in(1,1,255) do ping 10.168.1.%D” 代碼是什么意思呢?
代碼中的這個(1,1,255)就是網段起與始,就是檢測網段192.168.1.1到192.168.1.255之間的所有的ip地址,每次逐增1,直接到1到255這255個ip檢測完為止。
2、ping網段升級
上面的命令雖然能批量ping 地址,但是上面代碼在命令行窗口顯示數量多的時候看起來也很麻煩,那么再升級一下,用下面的代碼。
for /L %D in (1,1,255) do ping -n 10.168.1.%D >>a.txt
說明,ip地址是變的,你填你需要測的ip網段就行,a.txt也是變的,可以自已設置名稱。
這樣就會把結果導入的a.txt文件中,全部IP檢查完成后打開a.txt搜索“TTL=”包含它的就是通的地址,沒有包含“TTL=”的地址就是不通的。如下圖
打開后,就直接搜索沒TTL的就可以了。
3、ping網段命令再升級
很多人要說了這樣還要搜索,也不是太方便,需要這樣查來查去,那么我們再看下,是否有更簡便的方法呢?第一監控之前就發過。
答案肯定是有的,我們來看代碼。
for /l %D in (1,1,255) do (ping 192.168.1.%D -n 1 && echo 192.168.1.%D>>ok.txt || echo 192.168.1.%D >>no.txt)
這段代碼會將ping通的IP和不通的IP分別放到兩個文件里面,這樣是不是很方便啦,如下圖:
這段代碼非常實用,在大網絡中可以用到,就是大家在輸入的時候需要細心,不過也沒有關系,可以直接把這個文章收藏,日后要用,直接復制里面代碼,然后改下里面ip地址就行了。
4、ping網段命令終極方法
上面提到的三種代碼提到的都是針對同一個網段內ip地址批量檢測,那么肯定在實際項目中,也可能存不同網段的ip地址需要同時檢測,那么怎么辦呢?
也有方法,可以把沒有規劃的ip地址同時批量檢測,我們來看下代碼:
for /f %D in (ip.txt) do (ping %D -n 1 && echo %i>>ok.txt || echo %D >>no.txt)
看見沒有多了一個ip.txt文件,這個文件是要你自己準備的哦,把你ping的地址寫到這個文件里面,同時可以ping 1000個ip地址以上,代碼會自己讀取這個文件里面的ip地址,并且把結果放到兩個文件里面去。這里就不給大家截圖了很容易理解。
這里面補充下:
上面代碼生成的文件在你命令行默認目錄下。也就是說如果你的命令行狀態是:
"c:windowssystem32>"那么生成的文件就在系統的system32目錄下面。如果是"c:"那么文件就在C盤根目錄下。這個可以根據自己的實際情況進行調整。
感謝一直支持我們平臺的每一位讀者,有了你們的鼓勵、支持與反饋,我們才能夠不斷的推出真正能夠幫助到咱們行業人的資料技術文章,助力行業發展,另外咱們各位讀者若是有其他想要了解或是有任何建議的,我在私信期待著您的到來。
作為回饋,我收集并篩選了一份堪稱史上最全弱電資料合集,供大家免費學習,資料涵蓋智能化弱電系統設計方案、智能化弱電工程文檔+表格資料匯總、弱電項目工程竣工資料、弱電各個領域行業規范、15種系統設計方案、弱電施工組織設計等資料合集。