[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 获取局域网所有机器的MAC,电脑名称,IP地址信息

本帖最后由 pcl_test 于 2018-3-29 08:44 编辑

我有一个批处理实现扫描局域网所有机器IP、MAC地址和计算机名 ,但是无法扫描到完整的信息,请帮忙看看是哪里的问题
  1. @echo off&title 扫描MAC,IP,计算机名&color a&mode con: cols=60 lines=22
  2. setlocal enabledelayedexpansion
  3. echo.
  4. echo.
  5. :: iqp -> 内网IP的前3位,ip1 -> 起始ip,ip2 -> 结束ip
  6. set ipq=172.30.74
  7. set /a ip1=1
  8. set /a ip2=255
  9. set /a con=0
  10. set /a contotal=%ip2%-%ip1%+1
  11. echo      MAC                IP       计算机名 >info.txt
  12. for /l %%i in (!ip1!,1,!ip2!) do (
  13.         set ip=!ipq!.%%i
  14.         echo 扫描!ip!
  15.         ping !ip! -n 1 -w 1 >nul
  16.         if !errorlevel! equ 0 (
  17.                 for /f "tokens=1" %%j in ('nbtstat -a !ip! ^| find /i "UNIQUE" ^| find /i "00"') do set pcname=%%j
  18.                 for /f "tokens=4 delims=* " %%j in ('nbtstat -a !ip! ^| find /i "MAC Address"') do set mac=%%j
  19.                 echo !mac:~0,-1! !ip! !pcname! >>info.txt
  20.                 set /a con=!con!+1
  21.         )
  22. )
  23. echo 共%con%条记录 >>info.txt
  24. echo 共扫描:%contotal%台机器,扫描到:%con%个有效记录&pause >nul
复制代码

具体哪里不完整?举个例子吧
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

两点不完整
(1)MAC地址收集不完整
(2)IP与电脑名称,MAC地址 对应不上

TOP

如下是我前期写的
  1. @echo off&&setlocal enabledelayedexpansion
  2. title 快速获取局域网在线电脑的主机名ip地址及Mac地址
  3. echo 本工具需要sed.exe支持
  4. del /q IP电脑名MAC%date:~0,4%%date:~5,2%%date:~8,2%.html>nul 2>nul
  5. del /q *.ini>nul 2>nul
  6. arp -d
  7. net view>>test.ini
  8. findstr /i "\\" test.ini>>3.ini
  9. set p=0
  10. echo %date%%time%结果>IP电脑名MAC%date:~0,4%%date:~5,2%%date:~8,2%.html>nul 2>nul
  11. for /f %%i in (3.ini) do (
  12.     set /a p+=1
  13.     echo.>>IP电脑名MAC%date:~0,4%%date:~5,2%%date:~8,2%.html
  14.     set ww=%%i
  15.     set "ww=!ww:~2,20!"
  16.     set "ww=!ww: =!"
  17.     echo %%i
  18.     echo ^<p^>第!p!台主机--》>>IP电脑名MAC%date:~0,4%%date:~5,2%%date:~8,2%.html
  19.     ping -n 1 !ww!|findstr /i "pinging">>IP电脑名MAC%date:~0,4%%date:~5,2%%date:~8,2%.html || echo ^<font color^=blue^>!ww! ping 不通^</font^>>>IP电脑名MAC%date:~0,4%%date:~5,2%%date:~8,2%.html
  20.     nbtstat -a !ww!|findstr /ic:"MAC Address">>IP电脑名MAC%date:~0,4%%date:~5,2%%date:~8,2%.html
  21.     )
  22. echo 在线电脑共!p!台,任务结束!
  23. del /q *.ini>nul
  24. sed -i "s/Pinging/<b>/g;s/\] with 32 bytes of data://g;s/ Address = /地址 /g;s/\[/<\/b>的IP地址 /g" IP电脑名MAC%date:~0,4%%date:~5,2%%date:~8,2%.html
  25. chcp 936>nul
  26. start IP电脑名MAC%date:~0,4%%date:~5,2%%date:~8,2%.html
  27. ping /n 7 127.1>nul
复制代码
用到的sed在首页左下角。忙,顾不上给链接了。
目的,学习批处理

TOP

支持下,学习,学习。

TOP

返回列表