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

[网络连接] [分享]多种方法局域网查询IP.MAC的批处理

[复制链接]
发表于 2013-2-13 00:07:56 | 显示全部楼层 |阅读模式
本帖最后由 mxxcgzxxx 于 2013-2-13 00:10 编辑

前一部分按工作组查询方法是老贴中有的,但部分电脑会无法显示出来。
所以增补了按网卡所在IP进行查找和自定义跨子网查找的方法。
有了MAC地址就可以很方便的配合软件进行远程关机、开机和其他操作。
希望能对新手有所帮助,老鸟就飞过去吧呵

  1. @echo        off
  2. cls
  3. for /l %%1 in (1,1,3) do echo.
  4. echo.              特别提示
  5. echo.
  6. echo.   本软件将会把网内同一域的计算机分布情况显示出来,
  7. echo.   并将信息保存于桌面"网内IP分布情况.txt"文档内,以便查询!
  8. echo.
  9. echo.   如果无法找到相关信息有以下几种可能:
  10. echo.   1、您的计算机没有设置网关等信息无法进行局域网络共享!
  11. echo.   2、您所要查找的计算机未开机或未进入WINDOWS系统!
  12. echo.   3、您所要查找的计算机与您的计算机不在一个网域下!
  13. echo.   4、您的计算机未接入网络,请查看网络连接情况!
  14. for /l %%1 in (1,1,3) do echo.
  15. pause

  16. setlocal ENABLEDELAYEDEXPANSION

  17. ::文档存放位置在这修改
  18. set "wd=D:\网内IP分布情况.txt"

  19. echo.   网络在线IP及计算机名分布情况>%wd%
  20. :x
  21. cls
  22. set /p p=^

  23. ^

  24.         [1]        按工作组查询网络^

  25. ^

  26.         [2]        按IP网段查询网络^

  27. ^

  28.         [3]        自定义IP网段查询^

  29. ^

  30.         请选择:
  31. if %p%==1 goto :1
  32. if %p%==2 goto :2
  33. if %p%==3 goto :3
  34. goto :x
  35. :1
  36. cls
  37. FOR /F "delims=, " %%a IN ('net view /domain ^|find "命令執行成功" /v ^|find "The command completed successfully." /v ^|find "命令成功完成" /v ^|find "--" /v ^|find "Domain" /v ^|find "" /v ^|find "コマンドは正常に終了しました" /v /i') do (
  38.         echo.>>%wd%
  39.         echo.=======工作组:%%a========>>%wd%
  40.         echo.   IP地址                MAC地址                计算机名>>%wd%
  41.         echo.>>%wd%
  42.         echo.=======工作组:%%a========
  43.         echo.   IP地址                MAC地址                计算机名
  44.         FOR /F "eol=; delims=, " %%a in ('net view /domain:%%a ^|findstr "\"')        DO (
  45.                 FOR /F "eol=; tokens=1,2,3* delims=\" %%1 in ('echo %%a') do (
  46.                         set "m="
  47.                         set "ip="
  48.                         set "id="
  49.                         FOR /F "tokens=1,2,3,4*        delims=:[] " %%a IN ('ping -a -n 1 -w 100 %%1 ^|findstr "Pinging"') do (
  50.                                 set "m=%%b"
  51.                                 set "ip=%%c"
  52.                                 set "mac="
  53.                                 for /f "tokens=1,2,3 delims==         " %%a in ('nbtstat -a !ip!') do if "%%a"=="MAC" set id=%%c
  54.                                 call :11 !ip! !id! !m!
  55.                                 )
  56.                         )
  57.                 )
  58.         )
  59. pause
  60. goto :eof
  61. :11
  62. echo.%1        %2        %3>>%wd%
  63. echo.%1        %2        %3
  64. goto :eof

  65. :2
  66. cls
  67. echo.查询网络连接情况中请稍候……
  68. set n=1
  69. for /f "tokens=1,2,3,4,5 delims=:.=[]         " %%1 in ('nbtstat -a 0') do (
  70.         if "%%1"=="本地连接" set lj!n!=%%1
  71.         if "%%1"=="无线网络连接" set lj!n!=%%1
  72.         if "%%1"=="Node" set "ip!n!=%%3.%%4.%%5." & set /a n+=1
  73.         )
  74. echo.
  75. set /a n-=1
  76. for /l %%a in (1,1,%n%) do echo.        [%%a]        !lj%%a!        !ip%%a!
  77. echo.
  78. set "p="
  79. set /p p=        请选择您需要查询的IP段:
  80. set "ipd=!ip%p%!"
  81. goto :4
  82. :3
  83. set "ipd="
  84. set /p ipd=输入您要查询的IP段(xxx.xxx.xxx.):
  85. :4
  86. set /a n=1,end=254
  87. echo.
  88. set /p n=        您需要查询的起始IP为%ipd%
  89. echo.
  90. set /p end=        您需要查询的终止IP为%ipd%
  91. echo.
  92. echo.=======IP%ipd%段========>>%wd%
  93. echo.   IP地址                MAC地址                计算机名        工作组>>%wd%
  94. echo.>>%wd%
  95. echo.   IP地址                MAC地址                计算机名        工作组
  96. :5
  97. set "ip=%ipd%%n%"
  98. set "m="
  99. set "id="
  100. set "g="
  101. for /f %%a in ('ping -n 1 %ip% ^|findstr "Reply"') do (
  102.         for /f "tokens=1,2,3 delims==         " %%1 in ('nbtstat -a !ip!') do (
  103.                 if "%%1"=="MAC" set "id=%%3"
  104.                 if "%%2"=="<00>" if "%%3"=="UNIQUE" set "m=%%1"
  105.                 if "%%2"=="<00>" if "%%3"=="GROUP" set "g=%%1"
  106.                 )
  107.         )
  108. echo.%ip%        %id%        %m%        %g%>>%wd%
  109. echo.%ip%        %id%        %m%        %g%
  110. echo.
  111. set /a n+=1
  112. if %n% gtr %end% echo.查询情况已被保存在"%wd%"中 & pause &goto :eof
  113. goto :5

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 23:18 , Processed in 0.014765 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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