标题: [网络连接] [分享]多种方法局域网查询IP.MAC的批处理 [打印本页]
作者: mxxcgzxxx 时间: 2013-2-13 00:07 标题: [分享]多种方法局域网查询IP.MAC的批处理
本帖最后由 mxxcgzxxx 于 2013-2-13 00:10 编辑
前一部分按工作组查询方法是老贴中有的,但部分电脑会无法显示出来。
所以增补了按网卡所在IP进行查找和自定义跨子网查找的方法。
有了MAC地址就可以很方便的配合软件进行远程关机、开机和其他操作。
希望能对新手有所帮助,老鸟就飞过去吧呵- @echo off
- cls
- for /l %%1 in (1,1,3) do echo.
- echo. 特别提示
- echo.
- echo. 本软件将会把网内同一域的计算机分布情况显示出来,
- echo. 并将信息保存于桌面"网内IP分布情况.txt"文档内,以便查询!
- echo.
- echo. 如果无法找到相关信息有以下几种可能:
- echo. 1、您的计算机没有设置网关等信息无法进行局域网络共享!
- echo. 2、您所要查找的计算机未开机或未进入WINDOWS系统!
- echo. 3、您所要查找的计算机与您的计算机不在一个网域下!
- echo. 4、您的计算机未接入网络,请查看网络连接情况!
- for /l %%1 in (1,1,3) do echo.
- pause
-
- setlocal ENABLEDELAYEDEXPANSION
-
- ::文档存放位置在这修改
- set "wd=D:\网内IP分布情况.txt"
-
- echo. 网络在线IP及计算机名分布情况>%wd%
- :x
- cls
- set /p p=^
-
- ^
-
- [1] 按工作组查询网络^
-
- ^
-
- [2] 按IP网段查询网络^
-
- ^
-
- [3] 自定义IP网段查询^
-
- ^
-
- 请选择:
- if %p%==1 goto :1
- if %p%==2 goto :2
- if %p%==3 goto :3
- goto :x
- :1
- cls
- 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 (
- echo.>>%wd%
- echo.=======工作组:%%a========>>%wd%
- echo. IP地址 MAC地址 计算机名>>%wd%
- echo.>>%wd%
- echo.=======工作组:%%a========
- echo. IP地址 MAC地址 计算机名
- FOR /F "eol=; delims=, " %%a in ('net view /domain:%%a ^|findstr "\\"') DO (
- FOR /F "eol=; tokens=1,2,3* delims=\\" %%1 in ('echo %%a') do (
- set "m="
- set "ip="
- set "id="
- FOR /F "tokens=1,2,3,4* delims=:[] " %%a IN ('ping -a -n 1 -w 100 %%1 ^|findstr "Pinging"') do (
- set "m=%%b"
- set "ip=%%c"
- set "mac="
- for /f "tokens=1,2,3 delims== " %%a in ('nbtstat -a !ip!') do if "%%a"=="MAC" set id=%%c
- call :11 !ip! !id! !m!
- )
- )
- )
- )
- pause
- goto :eof
- :11
- echo.%1 %2 %3>>%wd%
- echo.%1 %2 %3
- goto :eof
-
- :2
- cls
- echo.查询网络连接情况中请稍候……
- set n=1
- for /f "tokens=1,2,3,4,5 delims=:.=[] " %%1 in ('nbtstat -a 0') do (
- if "%%1"=="本地连接" set lj!n!=%%1
- if "%%1"=="无线网络连接" set lj!n!=%%1
- if "%%1"=="Node" set "ip!n!=%%3.%%4.%%5." & set /a n+=1
- )
- echo.
- set /a n-=1
- for /l %%a in (1,1,%n%) do echo. [%%a] !lj%%a! !ip%%a!
- echo.
- set "p="
- set /p p= 请选择您需要查询的IP段:
- set "ipd=!ip%p%!"
- goto :4
- :3
- set "ipd="
- set /p ipd=输入您要查询的IP段(xxx.xxx.xxx.):
- :4
- set /a n=1,end=254
- echo.
- set /p n= 您需要查询的起始IP为%ipd%
- echo.
- set /p end= 您需要查询的终止IP为%ipd%
- echo.
- echo.=======IP%ipd%段========>>%wd%
- echo. IP地址 MAC地址 计算机名 工作组>>%wd%
- echo.>>%wd%
- echo. IP地址 MAC地址 计算机名 工作组
- :5
- set "ip=%ipd%%n%"
- set "m="
- set "id="
- set "g="
- for /f %%a in ('ping -n 1 %ip% ^|findstr "Reply"') do (
- for /f "tokens=1,2,3 delims== " %%1 in ('nbtstat -a !ip!') do (
- if "%%1"=="MAC" set "id=%%3"
- if "%%2"=="<00>" if "%%3"=="UNIQUE" set "m=%%1"
- if "%%2"=="<00>" if "%%3"=="GROUP" set "g=%%1"
- )
- )
- echo.%ip% %id% %m% %g%>>%wd%
- echo.%ip% %id% %m% %g%
- echo.
- set /a n+=1
- if %n% gtr %end% echo.查询情况已被保存在"%wd%"中 & pause &goto :eof
- goto :5
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |