zoukankan      html  css  js  c++  java
  • 如何使用批处理解决批量telnet命令的输入

    用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。

    追问:
    非常感谢, 我测试了您的方法结果,结果是一闪黑框就没了.也没有产生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不成功就有可能是假象了,您就别用该方案了。
  • 相关阅读:
    【校招面试 之 C/C++】第23题 C++ STL(五)之Set
    Cannot create an instance of OLE DB provider “OraOLEDB.Oracle” for linked server "xxxxxxx".
    Redhat Linux安装JDK 1.7
    ORA-10635: Invalid segment or tablespace type
    Symantec Backup Exec 2012 Agent for Linux 卸载
    Symantec Backup Exec 2012 Agent For Linux安装
    You must use the Role Management Tool to install or configure Microsoft .NET Framework 3.5 SP1
    YourSQLDba介绍
    PL/SQL重新编译包无反应
    MS SQL 监控数据/日志文件增长
  • 原文地址:https://www.cnblogs.com/superfeeling/p/5030783.html
Copyright © 2011-2022 走看看