您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“如何實現(xiàn)批處理查看同一子網(wǎng)絡下的所有IP在線情況”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
:::::::查看所有子網(wǎng)IP.bat::::::: @echo off title 查看所有子網(wǎng)IP set /a Online=0 set /a Offline=0 set /a Total=256 set ExportFile=子網(wǎng)IP在線統(tǒng)計.txt :: 初始化在線IP與不在線IP的個數(shù)為零,共掃描256個IP,結(jié)果輸出的文件名 set StartTime=%time% :: 記錄程序的開始時間 for /f "delims=: tokens=2" %%i in ('ipconfig /all ^| find /i "IP Address"') do set IP=%%i :: 獲得本機IP [注1] if "%IP%"=="" echo 未連接到網(wǎng)絡 & pause & goto :EOF if "%IP%"==" 0.0.0.0" echo 未連接到網(wǎng)絡 & pause & goto :EOF :: 當IP為空或 0.0.0.0 時,提示未連接并退出該程序 for /f "delims=. tokens=1,2,3,4" %%i in ("%IP%") do ( set /a IP1=%%i set /a IP2=%%j set /a IP3=%%k set /a IP4=%%l ) :: 以句點為分隔符,分別將IP的四個十進制數(shù)賦給四個變量 set /a IP4=0 echo 在線的IP:>%ExportFile% :: 初始化IP的第四個數(shù)值為零,并創(chuàng)建結(jié)果輸出文件 :RETRY ping %IP1%.%IP2%.%IP3%.%IP4% -n 1 -w 200 -l 16>nul && set /a Online+=1 && echo %IP1%.%IP2%.%IP3%.%IP4%>>%ExportFile% || set /a Offline+=1 :: ping 目標IP [注2] set /p =[將本文底部評論4中的退格符替換到此處]set /a Scanned=%Online%+%Offline% set /a Progress=(%Online%+%Offline%)*100/%Total% set /p =正在掃描:%Scanned%/%Total% 掃描進度:%Progress%%%:: 刪除當前行的內(nèi)容,并重新顯示進度信息 [注3] set /a IP4+=1 if %IP4% lss %Total% goto :RETRY :: 當IP的第四個數(shù)值小于總數(shù)時,跳轉(zhuǎn)回 :RETRY 處,重復執(zhí)行直到全部 ping 完為止 echo. echo. set EndTime=%time% :: 記錄程序的結(jié)束時間 set /a Seconds = %EndTime:~6,2% - %StartTime:~6,2% set /a Minutes = %EndTime:~3,2% - %StartTime:~3,2% if %Seconds% lss 0 set /a Seconds += 60 & set /a Minutes -= 1 if %Minutes% lss 0 set /a Minutes += 60 :: 計算時間差 set /a Percent=%Online%*100/(%Online%+%Offline%) :: 計算在線百分比 echo 在線IP個數(shù): %Online% echo 不在線IP個數(shù): %Offline% echo 在線百分比: %Percent%%% echo 統(tǒng)計耗時: %Minutes%分%Seconds%秒 echo 統(tǒng)計日期: %date% %time:~0,-3% echo.>>%ExportFile% echo 在線IP個數(shù): %Online%>>%ExportFile% echo 不在線IP個數(shù): %Offline%>>%ExportFile% echo 在線百分比: %Percent%%%>>%ExportFile% echo 統(tǒng)計耗時: %Minutes%分%Seconds%秒>>%ExportFile% echo 統(tǒng)計日期: %date% %time:~0,-3%>>%ExportFile% echo 記錄已保存到文件"%ExportFile%"中 ::顯示結(jié)果并將結(jié)果保存到文件中 pause ::::::::::::::::::::::::::::::::
注1. ipconfig 是內(nèi)置于 Windows 的 TCP/IP 應用程序,用于顯示本地計算機網(wǎng)絡適配器的物理地址和IP地址等配制信息,這些信息一般用來檢驗手動配置的 TCP/IP 設置是否正確。當在網(wǎng)絡中使用 DHCP 服務時, ipconfig 可以檢測到計算機中分配到了什么IP地址,是否配置正確,并且可以釋放,重新獲取IP地址。這些信息對于網(wǎng)絡測試和故障排除都有重要的作用。[3]
更詳細的說明請參閱 ipconfig/? 。ipconfig /all ,參數(shù) /all 表示查看詳細的網(wǎng)絡配置。命令 ipconfig /all ^| find /i "IP Address" 表示在 'ipconfig /all 的結(jié)果中,以 "IP Address" 為查找對象,進行搜索(其結(jié)果類似于:IP Address. . . . . . . . . . . . : 10.30.11.51 )。
而整條命令中的 for 語句,則表示在上述結(jié)果中,以冒號為間隔(delims=:),查找第2個字串(tokens=2)。很明顯,所找到的結(jié)果就是自己電腦當前的IP地址了(如果您只有一快網(wǎng)卡或是只啟用了一個網(wǎng)卡的話。顯然,對于多個網(wǎng)卡會顯示出多個IP的情況,我并沒有考慮的太全面)。[關(guān)于 for 更詳細請參閱 4.2.4 小節(jié)]
另外,注意到在 ipconfig /all ^| find /i "IP Address" 中有一個轉(zhuǎn)義字符 ^ ,它的作用是讓后面的管道命令 | 生效,而不是讓程序把 | 誤解為 for 語句里參數(shù)的一部分。
注2. ping 其實才是本批處理的核心部分。命令 ping 的主要作用是通過發(fā)送數(shù)據(jù)包并接收應答信息來檢測兩臺計算機之間的網(wǎng)絡是否連通。比如我可以輸入 ping 10.30.11.35 以便查看我是否能與我所在的局域網(wǎng)中IP為 10.30.11.35 的機器連通。如果我不懂批處理的話,也許我就得從 IP 10.30.11.1 開始,挨個地 ping 到 IP 10.30.11.255 ,才能達到我在本小節(jié)的最初目的。
在批處理中 ping 的3個參數(shù) -n 1 -w 200 -l 16 分別表示:僅 ping 一遍[-n 1],等待200毫秒后按超時考慮[-w 200],發(fā)送16字節(jié)的數(shù)據(jù)[-l 16]。
另外,此命令行中同時用到了兩個 && 和一個 || 的組合命令,我不得不承認這種復雜的邏輯關(guān)系會給您帶來閱讀上的困難。
注3. 這里使用了 set /p =顯示內(nèi)容
“如何實現(xiàn)批處理查看同一子網(wǎng)絡下的所有IP在線情況”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。