=======================by me=====================================工具
@echo off
echo.
color FC
for /f %%i in (pingip.txt) do (
ping -w 1200 -n 1 %%i|find /i "正在"
ping -w 1200 -n 2 %%i|find /i "TTL"
echo.
)
echo.&echo 感謝小明掃描完畢,隨便退出...&pause>nul測試
============================================================教程
一、若是IP連續,例如(192.168.1.1-192.168.1.10):
@echo off&setlocal ENABLEDELAYEDEXPANSION
if exist onlist.txt
if exist offlist.txt
for /l %%i in (1,1,10) do (
ping -n 1 192.168.1.%%i>nul 2>nul
if !errorlevel!==0 (echo 192.168.1.%%i >>c:\bat\onlist.txt) else (echo 192.168.1.%%i >>c:\bat\offlist.txt)
)
二、若是IP不連續,那使用一個文件plist寫入要測試的地址列表,而後批處理:
@echo off&setlocal ENABLEDELAYEDEXPANSION
if exist c:\bat\onlist.txt del c:\bat\onlist.txt
if exist c:\bat\offlist.txt del c:\bat\offlist.txt
for /f %%i in (c:\bat\pclist.txt) do (
ping -n 1 %%i>nul 2>nul
if !errorlevel!==0 (echo %%i >>c:\bat\onlist.txt) else (echo %%i >>c:\bat\offlist.txt)
)
今晚繼續咱們的電腦批處理系列教程。若是想知道本身的小區寬帶或局域網,甚至外網任意某一ip段,目前有多少人同時在上網腫麼辦呢?可能你們想到的必定是找工具什麼的。其實否則,利用Windows內置的批處理功能徹底能夠實現批量ping查找指定網段存活主機的目的!token
@echo off
color e
title 批處理掃網段主機
echo.
@for /f "tokens=1-4 delims=." %%i in (ip.txt) do (@for /l %%n in (1,1,255) do @ping -w 600 -n 1 %%i.%%j.%%k.%%n|find /i "ttl")
echo.&echo 掃描完畢,按任意鍵退出...&pause>nulip
複製以上代碼粘貼到記事本文檔裏,而後另存爲 批量ping.bat ,再新建一個空白的文本文檔,重命名爲 ip.txt 。一切準備完事兒,就能夠將你要批量掃描的ip段的地址放入ip.txt裏(好比要掃本身對應的內網IP段就能夠在ip.txt裏輸入 192.168.1.1 後保存),而後雙擊一鍵運行 批量ping.bat 批處理腳本就能夠看到返回的結果了。格式相似於:文檔
Reply from 192.168.1.1: bytes=32 time=2ms TTL=64
Reply from 192.168.1.2: bytes=32 time=3ms TTL=64
Reply from 192.168.1.3: bytes=32 time=2ms TTL=64
Reply from 192.168.1.5: bytes=32 time=2ms TTL=64
Reply from 192.168.1.6: bytes=32 time=1ms TTL=64
……此處省略餘下的全部可能的結果……字符串
下面我就來解讀一下介個看起來有點兒吃力的批處理命令吧。咱們分拆來看一下,ping -w 600 -n 1 表示對指定ip地址ping一次,等待超時的時間爲600毫秒;|find /i "ttl" 指的是僅顯示ping返回結果中帶「ttl」字符串的結果,也就是將指定網段內不存活的主機過濾掉了。而前面的 @for /f "tokens=1-4 delims=." %%i in (ip.txt) 意思是將「ip.txt」裏的字符串(也就是咱們要查找的ip段的地址)以「.」爲界分割爲四部分,分別賦予後面的變量 %%i、%%j、%%k 。最後剩下的 @for /l %%n in (1,1,255) 則表示從1開始循環+1遞增一直到255中止,而後賦予變量 %%n 。看不懂滴能夠在cmd窗口裏輸入 for /? 查看一下命令詳解吧。
!get