找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22346|回复: 1

[网络连接] [分享]MAC地址查询批处理

[复制链接]
发表于 2010-5-4 20:37:06 | 显示全部楼层 |阅读模式

  1. @echo off
  2. title "局域网MAC地址查询"
  3. echo     感谢hanyeguxing,qzwqzw给我提供帮助,感谢www.bathome.net给我提供学习的机会,
  4. echo 有想学批处理的来批处理之家,不过请先看版规再发帖。
  5. echo.
  6. echo.
  7. echo 按任意键继续
  8. pause >nul
  9. cls
  10. echo.    此批处理比网上的局域网MAC地址扫描.exe的查询时间要快一点,而且会自动生成arp
  11. echo -s ip macaddress格式的批处理。但是有一点要注意,需要网络连的通才能查询的了,而
  12. echo 且IP地址为C类的192.168类型。IP地址列表支持格式为192.168.x.x-192.168.x.x的类型,
  13. echo 支持192.168.x.x换行192.168.x.x的类型,不过需要跟批处理放在同一文件夹下面。在输
  14. echo 入起始IP里,支持单IP,支持单IP段,支持跨网段查询,不过跨网段时之后最后一个网段
  15. echo 时从1到输入,前面的网段都是从1查询到254,意思就是说192.168.x.y的y其实是没起到
  16. echo 作用的,不过仍然需要按标准IP地址输入,但很少影响输出结果。
  17. echo.
  18. echo.
  19. echo 1.输入起始IP和结束IP来查找MAC地址输出到arp绑定.bat
  20. echo 2.从IP地址.txt读取IP来查找MAC地址输出到arp绑定.txt
  21. echo 3.按0退出
  22. set/p chio=请选择:
  23. if "%chio%" == "1" goto input
  24. if "%chio%" == "2" goto beifen
  25. if "%chio%" == "0" exit
  26. :input
  27. setlocal enabledelayedexpansion
  28. set/p min=请输入起始IP:
  29. set/p max=请输入结束IP:
  30. for /f "tokens=3,4,7,8 delims=." %%m in ("%min%.%max%") do (
  31.   set min_3=%%m
  32.   set min_4=%%n
  33.   set max_3=%%o
  34.   set max_4=%%p
  35.                                                            )
  36. if %min_3% equ %max_3% (goto li) else (goto lu)
  37. endlocal
  38. :end
  39. pause
  40. goto :eof

  41. :li
  42. for /l %%a in (%min_4%,1,%max_4%) do (
  43.   for /f "tokens=1* delims==" %%i in ('ping 192.168.%min_3%.%%a -n 1 -w 20 /l 1 ^>nul ^& if not errorlevel 1 nbtstat -a 192.168.%min_3%.%%a') do (
  44.      if not "%%j" == "" echo.arp -s 192.168.%min_3%.%%a  %%j>>arp绑定.bat
  45.                            )
  46.              )
  47. goto :eof
  48. :lu
  49. for /l %%b in (%min_3%,1,%max_3%) do (
  50. for /l %%a in (1,1,254) do (
  51.    set /a max_5=max_4+1
  52.    if not "%%b.%%a" == "!max_3!.!max_5!" (
  53.    for /f "tokens=1* delims==" %%i in ('ping 192.168.%%b.%%a -n 1 -w 20 /l 1 ^>nul ^& if not errorlevel 1 nbtstat -a 192.168.%%b.%%a') do (
  54.      if not "%%j" == "" echo.arp -s 192.168.%%b.%%a  %%j>>arp绑定.bat
  55.                                       )
  56.                           ) else (
  57.                              goto end
  58.                                  )
  59.                    )
  60. )
  61. goto :eof

  62. :beifen
  63. setlocal enabledelayedexpansion
  64. for /f "tokens=1,2 delims=-" %%a in (IP地址.txt) do (
  65.   if not "%%b" == "" (
  66.     set min=%%a
  67.     set max=%%b      
  68.     goto lp          ) else (
  69.        goto lo
  70.                             )
  71.                                                     )
  72. endlocal
  73. pause
  74. :lp
  75. for /f "tokens=3,4,8 delims=." %%c in ("!min!.!max!") do (
  76.     set min_2=%%c
  77.     set min_3=%%d
  78.     set min_4=%%e   
  79.                                                          )
  80. for /l %%i in (!min_3!,1,!min_4!) do (
  81.       for /f "tokens=1* delims==" %%j in ('ping 192.168.!min_2!.%%i -n 1 -w 20 /l 1 ^>nul ^& if not errorlevel 1 nbtstat -a 192.168.!min_2!.%%i') do (
  82.         if not "%%k" == "" echo.arp -s 192.168.!min_2!.%%i  %%k>>arp绑定.txt
  83.                                      )
  84. )
  85. goto :eof
  86. :lo
  87. for /f "delims=" %%c in (IP地址.txt) do (
  88. for /f "tokens=1* delims==" %%j in ('ping %%c -n 1 -w 20 /l 1 ^>nul ^& if not errorlevel 1 nbtstat -a %%c') do (
  89.         if not "%%k" == "" echo.arp -s %%c  %%k>>arp绑定.txt
  90.                                      )
  91. )
  92. goto :eof
复制代码
应该算是初稿,以后慢慢完善,不过目前可以完成简单的功能,发出来给大家指点。
没对IP输入格式进行判断,如果乱输造成死机或者其他损失的不负责哦。如果按标准输入IP格式,是不会有问题的

[ 本帖最后由 sgaizxt001 于 2010-5-4 21:10 编辑 ]

评分

参与人数 1PB +5 收起 理由
CrLf + 5 感谢分享

查看全部评分

发表于 2011-9-2 17:36:51 | 显示全部楼层
输出无反应!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 06:09 , Processed in 0.018820 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表