http://www.im286.com/thread-7020909-1-1.html

拨可因需要统计本地局域网内所有机器的机器名、IP、MAC,所以写了个批处理实现此功能。提供出来给大家参考,使用方法:新建一个文本,复制下面的代码。将内网IP的前3位部分按自己的网络情况填写。保存为bat文件,比如:nb99.bat,然后直接执行,执行结束后会在同目录自动生成info.txt文件,所有机器的机器名、IP、MAC写在了里面。

  1. @echo off&title 扫描MAC,IP,计算机名&color a&mode con: cols=60 lines=22
  2. setlocal enabledelayedexpansion
  3. echo.
  4. echo  ============== 制作者:http://www.nb99.net ===============
  5. echo.
  6. echo     扫描内网IP、MAC地址和计算机名,并保存到info.txt文件
  7. echo.
  8. echo  ================== 制作不易,请保留版权 ==================
  9. echo.
  10. :: iqp -> 内网IP的前3位,ip1 -> 起始ip,ip2 -> 结束ip
  11. set ipq=192.168.0
  12. set /a ip1=1
  13. set /a ip2=255
  14. set /a con=0
  15. set /a contotal=%ip2%-%ip1%+1
  16. echo      MAC                IP       计算机名 >info.txt
  17. for /l %%i in (!ip1!,1,!ip2!) do (
  18.         set ip=!ipq!.%%i
  19.         echo 扫描!ip!
  20.         ping !ip! -n 1 -w 1 >nul
  21.         if !errorlevel! equ 0 (
  22.                 for /f "tokens=1" %%j in ('nbtstat -a !ip! ^| find /i "UNIQUE" ^| find /i "00"') do set pcname=%%j
  23.                 for /f "tokens=4 delims=* " %%j in ('nbtstat -a !ip! ^| find /i "MAC Address"') do set mac=%%j
  24.                 echo !mac:~0,-1! !ip! !pcname! >>info.txt
  25.                 set /a con=!con!+1
  26.         )
  27. )
  28. echo 共%con%条记录 >>info.txt
  29. echo 共扫描:%contotal%台机器,扫描到:%con%个有效记录&pause >nul
复制代码