[转载]用 bat 批处理 实现自动telnet

 

一般来说ftp做batch处理事务时非常常见的事情。那么如果Batch telnet,让我们的管理工作更加的轻松呢?

一般来说两种方法:

1、VBS法(Windows Script Host)

2、自动终端法(一些可以配置自动telnet的终端)

在这里我们讨论第一种方法:VBS法。由于Windows Script Host是系统自带的,我们不需要安装地方放软件就可以搞定。所以它一般是解决问题的首选。

首先,我们建立一个名字叫做tel.vbs的脚本,这里用telnet 到cisco路由器上作为一个例子,相关内容大家可以修改。

'建立Shell对象
set sh=WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000
'向telnet发送我们平时录入的命令
sh.SendKeys "open 192.168.1.1"
WScript.Sleep 1000
sh.SendKeys "{ENTER}"
WScript.Sleep 1000
sh.SendKeys "password{ENTER}"
WScript.Sleep 1000
sh.SendKeys "en{ENTER}"
WScript.Sleep 1000
sh.SendKeys "passord{ENTER}"
WScript.Sleep 1000
'运行cisco的show run命令
sh.SendKeys "show run{ENTER}"

然后,建立一个batch_tel.bat的批处理文件:


rem 启动telnet
start telnet.exe
rem batch telnet
cscript //nologo tel.vbs

最后,我们只需要运行batch_tel.bat就可以轻松搞定telnet的工作了。

对于SendKeys这个命令可以send什么,我们可以看下面的列表:

BACKSPACE {BACKSPACE}, {BS}, or {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL or DELETE {DELETE} or {DEL}
DOWN ARROW {DOWN}
END {END}
ENTER {ENTER}or ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS or INSERT {INSERT} or {INS}
LEFT ARROW {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP ARROW {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}

SHIFT +
CTRL ^
ALT %

===============================================================================

我自己做的:

tel.vbs 内容

set sh=WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000
sh.SendKeys "open 192.168.0.1{ENTER}"
WScript.Sleep 1000
sh.SendKeys "username{ENTER}"
WScript.Sleep 1000
sh.SendKeys "password{ENTER}"
WScript.Sleep 1000
sh.SendKeys "clear session{ENTER}"
WScript.Sleep 5000
sh.SendKeys "exit{ENTER}"
WScript.Sleep 1000
sh.SendKeys "{ENTER}"
WScript.Sleep 1000
sh.SendKeys "quit{ENTER}"


batch_tel.bat 内容:

rem 启动telnet
start telnet.exe
rem batch telnet
cscript //nologo tel.vbs

总结:密码如果有特殊符号用到shift的要用SHIFT + ,没测试过。

下面没测试成功。不研究了。

一。Windows平台:
复制一下代码到记事本中并另保存为autoTelnet.bat,之后双击运行就实现自动登录到telnet服务器了,服务器IP自己修改
@echo off
echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "open 192.168.1.200" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "engineer{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "ls {ENTER}">>telnet_tmp.vbs
start telnet
cscript //nologo telnet_tmp.vbs
del telnet_tmp.vbs

附录:

对于SendKeys这个命令可以send什么,我们可以看下面的列表:

BACKSPACE {BACKSPACE}, {BS}, or {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL or DELETE {DELETE} or {DEL}
DOWN ARROW {DOWN}
END {END}
ENTER {ENTER}or ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS or INSERT {INSERT} or {INS}
LEFT ARROW {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP ARROW {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}

SHIFT +
CTRL ^
ALT %

二。Linux平台

保证你的系统上存在expect这个可执行程序,保存以下代码到文件autoTelnet,并给与执行权限。详细操作察看命令expect

#!/usr/bin/expect --
set SERVER "192.168.1"
set USER "myusername"
set PASSWD "mypass"
if { $argc } {
spawn telnet $SERVER.$argv
} else {
spawn telnet $SERVER.200
}
expect "Password:"
send "$PASSWD\n"
expect "#"
send "ls\n"
interact
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows下,可以使用bat批处理脚本来批量检测远程端口。Telnet是一种远程终端连接服务,可以通过它来连接到远程主机的特定端口。以下是一个使用Telnet命令在批处理脚本中批量检测远程端口的例子: @echo off setlocal set ip_list=file_path\ip_list.txt set port=80 for /f %%i in (%ip_list%) do ( telnet %%i %port% | find "Connected" > nul if errorlevel 1 ( echo %%i:%port% is closed ) else ( echo %%i:%port% is open ) ) pause 在以上示例中,首先我们定义了要检测的IP列表文件的路径,即ip_list.txt文件,然后我们设定了要检测的端口号,此处设定为80端口。接着使用for循环读取ip_list.txt文件中的每个IP地址。 在每次循环中,我们使用telnet命令连接到远程主机的指定端口。如果端口成功连接,则表示端口是开放的,telnet命令的输出会包含"Connected"关键字。我们使用find命令查找telnet命令的输出中是否包含"Connected"关键字。 如果find命令找到了"Connected"关键字,则说明端口是开放的,我们将显示"IP地址:端口号 is open"的消息。否则,即端口未连接,我们将显示"IP地址:端口号 is closed"的消息。 最后,我们使用pause命令来暂停脚本的运行,以便我们可以查看检测结果。 需要注意的是,Telnet命令在默认情况下可能未启用,需要手动在Windows设置中启用Telnet客户端功能。此外,Telnet命令在Windows 10及更高版本中可能已被淘汰,可以考虑使用其他工具如ncat或PowerShell来代替Telnet命令进行远程端口检测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值