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

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

本帖最后由 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
复制代码
世界上没有学不会的知识,也没有想得到却做不到的事!

返回列表