本帖最后由 cutebe 于 2022-4-1 19:10 编辑
- ::扫描IP名MAC.bat::XP/Win7::
- ::ping -n 1 -w 99 %ip%/ping -a
- ::nbtstat -a %ip%
- @echo off
- setlocal enableDelayedExpansion
- set "ip3=192.168.1"
- for /l %%i in (1,1,254)do (
- rem echo %%i
- call :CheckIPstatus %ip3%.%%i&&call :GetIPNameMAC %ip3%.%%i Name MAC
- if !errorlevel! equ 0 echo/[%ip3%.%%i] [!Name!] [!MAC!]
- )
- pause
- goto :eof
- ::[完]
-
- ::ping是否通:返回码stat=失败/Lost
- :CheckIPstatus
- for /f "tokens=3 delims=,," %%p in ('"ping -n 1 -w 99 %1|findstr /i "数据包 Packets""')do (
- for /f "tokens=3" %%s in ("%%p")do set "stat=%%s"
- )
- exit/b %stat%
-
- ::nbtstat查ip对应计算机名、MAC
- :GetIPNameMAC IP Name MAC
- setlocal
- for /f "delims=" %%n in ('"nbtstat -a %1|findstr /ic:"唯一" /c:"UNIQUE" /c:"MAC ""')do (
- set "nbt=%%n"
- set "nbt=!nbt:<= !"
- set "nbt=!nbt:>=!"
- if "!nbt:唯一=!!nbt:UNIQUE=!" neq "!nbt!!nbt!" for /f %%m in ("!nbt!")do set "Name=%%m"
- if "!nbt:MAC=!" neq "!nbt!" for /f "tokens=4" %%m in ("!nbt!")do set "MAC=%%m"
- )
- if "%MAC%"=="" (set Bcode=1)else set Bcode=0
- endlocal&set %2=%Name%&set %3=%MAC%&exit/b %Bcode%
复制代码
|