如何使用批处理解决批量telnet命令的输入
使用批处理解决批量telnet地址端口1,每天要手动输入telnet地址端口查看是不是通了具体是telnet192.168.1.1001,telnet192.168.1....
使用批处理解决批量telnet地址端口
1,每天要手动输入telnet地址端口查看是不是通了具体是telnet 192.168.1.1 001 ,telnet 192.168.1.2 002, telnet 192.168.1.3 003, telnet 192.168.1.4 004.........telnet 192.168.1.200 0110...几百个地址太多了.不方便
2,telnet的IP和端口在一个TXT文本文件中等待被提取。
3,使用批处理的BAT文件来批量输入telnet命令
4,如果通了反回IP地址并记录到一个TXT文件中,不通的反回IP地址记录到一个TXT文件中
谢谢,解决重谢 展开
1,每天要手动输入telnet地址端口查看是不是通了具体是telnet 192.168.1.1 001 ,telnet 192.168.1.2 002, telnet 192.168.1.3 003, telnet 192.168.1.4 004.........telnet 192.168.1.200 0110...几百个地址太多了.不方便
2,telnet的IP和端口在一个TXT文本文件中等待被提取。
3,使用批处理的BAT文件来批量输入telnet命令
4,如果通了反回IP地址并记录到一个TXT文件中,不通的反回IP地址记录到一个TXT文件中
谢谢,解决重谢 展开
1个回答
展开全部
用telnet命令做不了自动,因为如果成功telnet了,telnet就控制输入了。
其实,不用那么麻烦,您下载一个微软官方的扫描器叫portqry,用一句for读取您文件里的ip和port,执行就行了。
假设您的文件叫list.txt,里面是ip port的格式,就这么写:
@echo off
@setlocal enabledelayedexpansion
@if exist notopen.log del /f /q notopen.log
@if exist open.log del /f /q open.log
@for /f "tokens=1,2* delims= " %%i in (list.txt) do(
@portqry -n %%i -e %%j|find "NOT" >nul
@if %errorlevel%==0 (
@echo %%i:%%j not open >>notopen.log
) else (
@echo %%i:%%j is open >>open.log
)
)
把上面的批处理存为myscan.bat,和您的列表文件,以及portqry工具放在一个文件夹里就行了。运行批处理后,通的存到open.log,不通的存到notopen.log。
其实,不用那么麻烦,您下载一个微软官方的扫描器叫portqry,用一句for读取您文件里的ip和port,执行就行了。
假设您的文件叫list.txt,里面是ip port的格式,就这么写:
@echo off
@setlocal enabledelayedexpansion
@if exist notopen.log del /f /q notopen.log
@if exist open.log del /f /q open.log
@for /f "tokens=1,2* delims= " %%i in (list.txt) do(
@portqry -n %%i -e %%j|find "NOT" >nul
@if %errorlevel%==0 (
@echo %%i:%%j not open >>notopen.log
) else (
@echo %%i:%%j is open >>open.log
)
)
把上面的批处理存为myscan.bat,和您的列表文件,以及portqry工具放在一个文件夹里就行了。运行批处理后,通的存到open.log,不通的存到notopen.log。
更多追问追答
追问
非常感谢, 我测试了您的方法结果,结果是一闪黑框就没了.也没有产生open.log和notopen.log这两个文件,是不是我哪里写错了.最大的可能 是不是我在list.txt中的IP格式不对。我写的是
172.27.193.1 2000
172.27.193.2 2000
172.27.193.3 2000
这样的格式.对不对.如果不对应该写什么样的IP格式?
追答
不是您的格式不对,是我马虎了,抱歉。给您从发一段,这段是在XP下实际测试后的。
@echo off
@setlocal enabledelayedexpansion
@if exist notopen.log del /f /q notopen.log
@if exist open.log del /f /q open.log
@for /f "tokens=1,2* delims= " %%i in (list.txt) do (
@portqry -n %%i -e %%j|find ": LISTENING" >nul
@if !errorlevel!==0 (
@echo %%i:%%j >>open.log
) else (
@echo %%i:%%j >>notopen.log
)
)
您再试一下。不过当地址端口不通时,我的机器每个地址大约有60秒超时间隔,所以如果,有很多机器没开机的话,效率不是太高。
有个解决办法,就是先用for循环ping一遍,ping通了的再进行该扫描,我也给您简单写了个批处理,就叫myping.bat吧。
@echo off
@setlocal enabledelayedexpansion
@if exist ping_ok.txt del /f /q ping_ok.txt
@for /f "tokens=1,2* delims= " %%i in (list.txt) do (
@ping -n 1 %%i|find "TTL=" >nul
@if !errorlevel!==0 @echo %%i %%j >>ping_ok.txt
)
这个执行完后,会生成ping_ok.txt,把第一段批处理里的list.txt换成这个ping_ok.txt就行了。该解决方案的问题是,如果您的客户端有防火墙、或网络丢包率高,那ping不成功就有可能是假象了,您就别用该方案了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询