返回列表 发帖

[网络工具] 批处理版局域网空闲IP查询

::原理介绍:先通过net view命令获取局域网的所有计算机
::(无法查询没有安装netbios协议的计算机);再ping这些计算机(ping不通也没关系)
::然后查arp缓存。
::code by youxi01@bbs.bathome.net 2008-1-7
@echo off &setlocal enabledelayedexpansion
title 局域网空闲IP查询@bbs.bathome.net
Rem '/*========获取本机的IP地址(局域网)=========*/
echo 正在获取本机的IP地址,请稍等...
for /f "tokens=3 skip=2 delims=: " %%i in ('nbtstat -n') do (
     set "IP_addr=%%i"
     set IP_addr=!IP_addr:~1,-1!
     echo 本机IP为:!IP_addr!
     goto :next
)
:next
for /f "delims=. tokens=1,2,3,4" %%i in ("%IP_addr%") do set IP_fd=%%i.%%j.%%k
Rem '/*========获取计算机名============*/
echo.&echo 正在获取局域网内计算机名,请稍等...
echo 处于网段 %IP_fd%.* 的计算机有:&echo.
for /f "delims=" %%i in ('net view') do (
     set "var=%%i"
     rem ----------获取计算机名称------------
     if "!var:~0,2!"=="\\" (
          set "var=!var:~2!"
          echo !var!
          Rem ----------ping计算机名--------------
          ping -n 1 !var!>nul
    )
)
echo.&echo -----------------------------
Rem '/*========提取arp缓存=========*/
echo.&echo 正在获取局域网内计算机IP,请稍等...& echo.
for /f "skip=3 tokens=1,* delims= " %%i in ('arp -a') do echo IP: %%i 已经使用
echo.&echo -----------------------------
echo 程序完成,谢谢使用!
pause>nulCOPY

不怎么准吧  我怎么只扫描到2台???

TOP

恩恩。。。只扫到了几台而已

TOP

我用的是nbtscan

TOP

不错哦
学习了 谢谢楼主的分享

TOP

code/echo  谢谢 分享了/code

TOP

不错,比我以前写的那个效率要高。。。

TOP

只扫描到几台,我旁边有台电脑开着就没扫描到!

TOP

不错,蛮好用的.谢谢了

TOP

本帖最后由 mxxcgzxxx 于 2011-3-31 23:07 编辑

用我的试试,比较短小!还会写入 1.txt  内,以备查看.
经学校测试效果极佳!
不在一个工作组下的可以显示,
不在一个IP段下的不能显示.
没开机的不能显示
@echo off
@echo 中小网络在线IP分布情况>1.txt
setlocal ENABLEDELAYEDEXPANSION
@FOR /F "usebackq delims=, " %%J 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 =====domain:%%J========>>1.txt
@echo =====domain:%%J========
@FOR /F "usebackq eol=; delims=, " %%i in (`net view /domain:%%J ^|findstr "\\"`) DO (
@FOR /F "usebackq eol=; tokens=1,2,3* delims=\\" %%a in (`echo %%i`) do (
@FOR /F "tokens=1,2,3,4* usebackq delims=: " %%K IN (`@ping -a -n 1 -w 100 %%a ^|findstr "Pinging"`) do (
@echo \\%%L %%M>>1.txt
@echo \\%%L %%M
)
)
)
)
echo %0
pause "按任意键退出"COPY

TOP

IP取的不是很准哦

TOP

学习一下,,,,,,,,,,,,,,,,

TOP

本帖最后由 ming668 于 2011-7-8 09:37 编辑
用我的试试,比较短小!还会写入 1.txt  内,以备查看.
经学校测试效果极佳!
不在一个工作组下的可以显示,
不在一个IP段下的不能显示.
没开机的不能显示
@echo off
@echo 中小网络在线IP分布情况>1.txt

setloc ...
mxxcgzxxx 发表于 2011-3-31 23:01


能否帮忙写个只要计算机名就可以的,不要其它的参数。

TOP

人才~~~~~~~~~~~
收入分四种:狂劳不得,多劳少得,少劳多得,不劳狂得。还好,我是第二种!

TOP

回复 1# youxi01


    使用tokens=3 skip=2 delims=:,只能显示第一个启用的网卡地址,如果我有无线连接,就会显示无线连接的地址并在无线连接的网段中寻找了

这样不太好吧,希望能修正一下

TOP

返回列表