如何使用批处理解决批量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 2000172.27.193.2 2000172.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不成功就有可能是假象了,您就别用该方案了。
时间: 2024-08-09 16:18:42

如何使用批处理解决批量telnet命令的输入的相关文章

telnet命令详解

基础命令学习目录 原文链接:https://www.cnblogs.com/PatrickLiu/p/8556762.html telnet命令用于登录远程主机,对远程主机进行管理.telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了.但仍然有很多别的系统可能采用了telnet方式来提供远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的. 一.CentOS下查看系统是否已安装telnet rpm -qa | grep

退出telnet 命令

很多时候 telnet 完就无法退出了,ctrl+c 有时也无法退出 后来找到了正确的命令 ctrl+]  然后在telnet 命令行输入 quit  就可以退出了

批处理实现多线程执行命令列表文件

批处理实现多线程执行命令列表 工作中碰到多线程执行命令列表的情况,研究一番,编写出来与大家分享.高手看了也请指点,指教一些更简单的办法. 批处理是一种单线程的简单脚本,只有上条命令执行完后,才能执行下条命令.如果上条命令执行花费很长时间,如超时,连接失败不断尝试等,下一条命令头发白了,可能还等不到它执行. 百度问答上找到一个方法可以实现多线程,原理:利用bat调用bat来实现多线程. 例如:网管希望同时ping局域中所有主机,实现方法如下. 首先,建立两个批处理文件: 1.bat文件代码如下:

Windows 批处理(cmd/bat)常用命令教程

Windows批处理(cmd/bat)常用命令教程 简单详细,建议收藏 前言 批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务.用户只需双击批处理文件便可执行任务,而无需重复输入相同指令.编写批处理文件非常简单,但难点在于确保一切按顺序执行.编写严谨的批处理文件可以极大程度地节省时间,在应对重复性工作时尤其有效 在Windows中善用批处理可以简化很多重复工作 什么是批处理? 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理.

Linux批量运行命令

需求: 要在Linux下面执行很多条命令,并且每条命令执行的时间会很长. 解决办法: 编写一个sh脚本,将多条命令放入到此脚本中,执行执行脚本就可以了. 例: test.sh Linux代码   #!/bin/sh java -classpath :/home/javaliujie/mysql-connector-java-3.1.12-bin.jar:/home/javaliujie/myLib.jar: cn.com.TestMain 20090201 java -classpath :/h

Centos6.x系统下安装telnet命令及使用

一.查看系统是否已安装telnet rpm -qa | grep telnet telnet-0.17-48.el6.x86_64 telnet-server-0.17-48.el6.x86_64 telnet 是挂在 xinetd 底下的,所以同时查看是否安装了xinetd服务 rpm -qa | grep xinetd xinetd-2.3.14-39.el6_4.x86_64 两者都没有的安装的话,yum安装以下服务 yum install xinetd telnet telnet-ser

每天一个Linux命令(52)telnet命令

    执行telnet指令开启终端机阶段作业,并登入远端主机.     (1)用法:     用法:  telnet [参数] [主机]     (2)功能:     功能:  telnet命令通常用来远程登录.   原理: Telnet服务虽然也属于客户机/服务器模型的服务,但它更大的意义在于实现了基于Telnet协议的远程登录(远程交互式计算). telnet实现的远程登录: 分时系统允许多个用户同时使用一台计算机,为了保证系统的安全和记帐方便,系统要求每个用户有单独的帐号作为登录标识,系

解决 -bash:telnet:command not found

一.背景 telnet命令通常用来远程登录,例如:我今天安装了Memcache服务,想 telnet远程登录查看一下,是否正常启动. 二.问题 当我在linux虚拟机下敲下telnet时,发现提示 -bash:telnet:command not found,如图所示: 我们查看是否有安装telnet-server服务端时,发现是空的 #rpm -q telnet-server 如图所示: 三.解决 第一步:我们先查看linux虚拟机有没有安装telnet客户端和telnet-server 服务

telnet命令使用介绍

什么是Telnet协议? Telnet协议是TCP/IP协议家族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.在终端使用者的电脑上使用telnet程序,用它连接到服务器.终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样.可以在本地就能控制服务器.要开始一个telnet会话,必须输入用户名和密码来登录服务器.Telnet是常用的远程控制Web服务器的方法. 为什么需要teln