你要先知道你在哪个网段,可以用ipconfig命令查看,比如你的IP是192.168.0.1,你的段就在192.168.0这个段,在下面的批处理中输入起始ip和终止ip你就可以这样输:
起始:192.168.0.1
结束:192.168.0.255
扫描完后,就可以看见在线的所有IP!
以下是我的一个批处理: (IP探测+端口扫描)
前段的功能就可以达到你的要求,扫描IP!
把下面的代码保存在文本文件(txt)里,再把后缀名改为bat,即可运行!
@echo off
title 扫描在线IP
MODE con: COLS=60 LINES=18
color 0a
:start
cls
for /l %%i in (1,1,4) do echo.
if exist 在线IP.txt goto zcx
echo ╔—…—…—…—…—…—…—…—…—…—…—……╗
echo ┆ ===IP扫描☆端口探测=== ┆
echo ┆ ┆
echo ┆ 先输入起始IP和中止IP,程序就会自动扫 ┆
echo ┆ 描在线的主机并把在线主机IP地址纪录供后面 ┆
echo ┆ 程序调用。 ┆
echo ┆ 注意:此程序暂时不能扫描不同网段的IP地址。 ┆
echo ╚—…—…—…—…—…—…—…—…—…—…——…╝
for /l %%i in (1,1,2) do echo.
set/p var1= 起始IP:
set/p var2= 终止IP:
cls
echo.
for /f "tokens=1,2,3,4 delims=." %%a in ("%var1%") do (
set var4=%%a.%%b.%%c
set var5=%%d)
for /f "tokens=1,2,3,4 delims=." %%a in ("%var2%") do (
set var6=%%a.%%b.%%c
set var7=%%d)
if not %var4%==%var6% echo 错误:不在同一网段! & pause>nul & cls & goto start
for /L %%i in (%var5%,1,%var7%) do (
ping -n 1 %var4%.%%i >nul && echo %var4%.%%i 在线 && echo %var4%.%%i>>在线IP.txt||echo %var4%.%%i)
if exist 在线IP.txt (
find /c 在线IP.txt "." >IPL.temp
FOR /F "tokens=3 delims= " %%c in (IPL.temp) do echo 扫描完成,共有%%c台在线主机!
del IPL.temp & echo 端口检测 & pause >nul) ELSE echo 扫描完毕! 此IP段没有在线主机! 按任意键返回! & pause >nul & goto start
:zcx
title 探测在线IP的端口开放情况
color 0a
cls
for /l %%i in (1,1,5) do echo.
echo 恭喜,你输入的IP范围内扫描到有在线
echo 的主机,现在可以探测在线的主机都开了什
echo 么端口,请按提示操作!
echo.
echo 1、探测指定单一端口
echo 2、探测指定多个端口
echo 3、探测指定端口范围
echo 4、重新扫描另外IP段
echo 5、退出
echo.
set /p shr= 请选择:
if "%shr%"=="1" goto dy
if "%shr%"=="2" goto dg
if "%shr%"=="3" goto fw
if "%shr%"=="4" del 在线IP.txt & goto start
if "%shr%"=="5" exit
IF ERRORLEVEL 1 goto cw
:cw
color 0f
echo 输入错误! 按任意键返回! & pause >nul & cls
goto zcx
:dy
color 0a
cls
for /l %%i in (1,1,2) do echo.
echo + +说明+ +
echo.
echo 探测中的时候任务栏显示一个或多个CMD窗口并一直没自动
echo 关闭的话,就说明你指定的端口在这个IP上是开放的,在标题栏
echo 上可看到IP,或看本批处理窗口内停着的最后一行,可以看到IP
echo 和端口号,把停着不自动关的那个窗口关了可以继续探测!
echo.
echo.
echo.
echo ===请选择探测模式===
echo.
echo 1、逐一探测 2、一并探测 3、使用说明 4、返回
echo.
set /p shr=选择:
if /i "%shr%"=="1" goto zhuyi
if /i "%shr%"=="2" goto yibing
if /i "%shr%"=="3" goto shuoming
if /i "%shr%"=="4" goto zcx
IF ERRORLEVEL 1 goto cw
:cw
color 0f
echo 输入错误! 按任意键返回! & pause >nul & cls
goto dy
:zhuyi
color 0a
cls
for /l %%i in (1,1,2) do echo.
echo + +说明+ +
echo.
echo 探测中的时候任务栏显示一个或多个CMD窗口并一直没自动
echo 关闭的话,就说明你指定的端口在这个IP上是开放的,在标题栏
echo 上可看到IP,或看本批处理窗口内停着的最后一行,可以看到IP
echo 和端口号,把停着不自动关的那个窗口关了可以继续探测!
echo.
echo.
echo.
echo ===请输入端口后按回车键===
echo.
set /p shr=端口号:
FOR /F "delims= " %%c in (在线IP.txt) do (
echo IP:%%c Port:%shr%
cmd /c start /wait /min telnet %%c %shr%
)
echo.
echo 探测完成!
echo 按任意键返回 & pause >nul & goto dy
:yibing
color 0a
cls
for /l %%i in (1,1,2) do echo.
echo + +说明+ +
echo.
echo 探测中的时候任务栏显示一个或多个CMD窗口并一直没自动
echo 关闭的话,就说明你指定的端口在这个IP上是开放的,在标题栏
echo 上可看到IP,或看本批处理窗口内停着的最后一行,可以看到IP
echo 和端口号,把停着不自动关的那个窗口关了可以继续探测!
echo.
echo.
echo.
echo ===请输入端口后按回车键===
echo.
set /p shr=端口号:
FOR /F "delims= " %%c in (在线IP.txt) do (
echo IP:%%c Port:%shr%
start /min telnet %%c %shr%
)
echo.
echo 探测完成!
echo 按任意键返回 & pause >nul & goto dy
:shuoming
cls
for /l %%i in (1,1,2) do echo.
echo + +说明+ +
echo.
echo 1、逐一探测方式比较慢,但是不占用太多系统资源!
echo 2、一并探测方式会一起开出很多个CMD窗口,系统资源少
echo 的话不建议选用!
echo 3、如果任务栏显示一个CMD窗口一直没自动关的话,就说
echo 明你指定的端口在这个IP上是开放的,在标题栏上可
echo 看到IP,或看本批处理窗口内停着的最后一行,可以
echo 看到IP和端口号,把停着不自动关的那个窗口关了可
echo 可继续探测!
echo.
echo.
echo 按任意键返回 & pause >nul & goto dy
:dg
color 0a
cls
for /l %%i in (1,1,2) do echo.
echo + +说明+ +
echo.
echo 探测中的时候任务栏显示一个或多个CMD窗口并一直没自动
echo 关闭的话,就说明你指定的端口在这个IP上是开放的,在标题栏
echo 上可看到IP,或看本批处理窗口内停着的最后一行,可以看到IP
echo 和端口号,把停着不自动关的那个窗口关了可以继续探测!
echo.
echo 端口输完后按OK加回车继续
echo 输入dk加回车重输入端口
echo 输入FH加回车返回
if exist 自定端口.txt echo 已指定端口:
if exist 自定端口.txt type 自定端口.txt
echo.
set /p shr=端口号:
if /i "%shr%"=="ok" goto jx
if /i "%shr%"=="dk" del 自定端口.txt & goto dg
if /i "%shr%"=="fh" goto zcx
echo %shr%>>自定端口.txt
goto dg
:jx
color 0a
cls
for /l %%i in (1,1,2) do echo.
echo + +说明+ +
echo.
echo 探测中的时候任务栏显示一个或多个CMD窗口并一直没自动
echo 关闭的话,就说明你指定的端口在这个IP上是开放的,在标题栏
echo 上可看到IP,或看本批处理窗口内停着的最后一行,可以看到IP
echo 和端口号,把停着不自动关的那个窗口关了可以继续探测!
echo.
echo.
echo.
echo ===请选择探测模式===
echo.
echo 1、逐一探测 2、一并探测 3、使用说明 4、返回
echo.
set /p shr=选择:
if /i "%shr%"=="1" goto zhuyi2
if /i "%shr%"=="2" goto yibing2
if /i "%shr%"=="3" goto shuoming2
if /i "%shr%"=="4" goto zcx
IF ERRORLEVEL 1 goto cw
:cw
color 0f
echo 输入错误! 按任意键返回! & pause >nul & cls
goto dy
:zhuyi2
color 0a
cls
for /l %%i in (1,1,2) do echo.
echo + +说明+ +
echo.
echo 探测中的时候任务栏显示一个或多个CMD窗口并一直没自动
echo 关闭的话,就说明你指定的端口在这个IP上是开放的,在标题栏
echo 上可看到IP,或看本批处理窗口内停着的最后一行,可以看到IP
echo 和端口号,把停着不自动关的那个窗口关了可以继续探测!
echo.
echo.
FOR /F "delims= " %%c in (在线IP.txt) do (
FOR /F "delims= " %%d in (自定端口.txt) do (
echo IP:%%c Port:%%d
cmd /c start /wait /min telnet %%c %%d
)
)
echo.
echo 探测完成!
echo 按任意键返回 & pause >nul & goto dy
:yibing2
color 0a
cls
for /l %%i in (1,1,2) do echo.
echo + +说明+ +
echo.
echo 探测中的时候任务栏显示一个或多个CMD窗口并一直没自动
echo 关闭的话,就说明你指定的端口在这个IP上是开放的,在标题栏
echo 上可看到IP,或看本批处理窗口内停着的最后一行,可以看到IP
echo 和端口号,把停着不自动关的那个窗口关了可以继续探测!
echo.
echo.
FOR /F "delims= " %%c in (在线IP.txt) do (
FOR /F "delims= " %%d in (自定端口.txt) do (
echo IP:%%c Port:%%d
start /min telnet %%c %%d
)
)
echo.
echo 探测完成!
echo 按任意键返回 & pause >nul & goto dy
:shuoming2
cls
for /l %%i in (1,1,2) do echo.
echo + +说明+ +
echo.
echo 1、逐一探测方式比较慢,但是不占用太多系统资源!
echo 2、一并探测方式会一起开出很多个CMD窗口,系统资源少
echo 的话不建议选用!
echo 3、如果任务栏显示一个CMD窗口一直没自动关的话,就说
echo 明你指定的端口在这个IP上是开放的,在标题栏上可
echo 看到IP,或看本批处理窗口内停着的最后一行,可以
echo 看到IP和端口号,把停着不自动关的那个窗口关了可
echo 可继续探测!
echo.
echo.
echo 按任意键返回 & pause >nul & goto jx
:fw
color 0a
cls
for /l %%i in (1,1,2) do echo.
echo + +说明+ +
echo.
echo 探测中的时候任务栏显示一个或多个CMD窗口并一直没自动
echo 关闭的话,就说明你指定的端口在这个IP上是开放的,在标题栏
echo 上可看到IP,或看本批处理窗口内停着的最后一行,可以看到IP
echo 和端口号,把停着不自动关的那个窗口关了可以继续探测!
echo.
echo 请按照提示输入
echo 输FH加回车返回
set /p fw1= 起始端口:
if /i "%fw1%"=="fh" goto zcx
set /p fw2= 中止端口:
if /i "%fw2%"=="fh" goto zcx
FOR /F "delims= " %%c in (在线IP.txt) do (
for /l %%d in (%fw1%,1,%fw2%) do (
echo IP:%%c Port:%%d
cmd /c start /wait /min telnet %%c %%d
)
)
echo.
echo 探测完成!
echo 按任意键返回 & pause >nul & goto fw
ARP欺骗的东西不可用的,会导致网络瘫痪,路由看一下就所有的ARP列表不是全出来了,IP和MAC全都可以看到;
下载个P2P对网络扫描一下就看的到了。
批处理?搞不定,不过你不想用工具的话,可以直接进路由器查看DHCP