随笔-9  评论-21  文章-63  trackbacks-0
一。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
posted on 2007-04-12 14:02 Flutist 阅读(10047) 评论(13)  编辑 收藏 引用 所属分类: 资料查询库

评论:
# re: 自动登录telnet批处理文件 2007-09-19 20:50 | zya
极好  回复  更多评论
  
# re: 自动登录telnet批处理文件 2008-03-18 23:20 | sychen173
版主,你好,你的程序,对我来说太好不过了。就是还有个小小的问题,请多多指教。我现在的密码,也想然自动实现。telnet 成功后还想保存上面的某些数据。怎么编写命令才好。  回复  更多评论
  
# re: 自动登录telnet批处理文件[未登录] 2008-04-28 21:19 | yy
@sychen173
没明白你的意思。你说的是Linux的还是windows的?
是登陆上去后,保存某些命令的输出么?  回复  更多评论
  
# re: 自动登录telnet批处理文件 2008-05-12 16:12 | lwj
很好,受益匪浅啊  回复  更多评论
  
# re: 自动登录telnet批处理文件 2008-05-28 14:57 | mdctmk
其实用NETTERM登陆时选择"登陆巨型文件"实现不错
以下为登陆UNIX系统例子
expect 60 "login:"
output "username^M"
expect 60 "Password:"
output "userpass^M"
expect 60 "(vt100)"
output "^M"
expect 60 "#"
output "who^M"
  回复  更多评论
  
# re: 自动登录telnet批处理文件[未登录] 2008-06-04 20:34 | Flutist
这里主要是不借助工具,如果使用工具的话,还是有一些好的telnet工具可用的@mdctmk
  回复  更多评论
  
# re: 自动登录telnet批处理文件 2008-07-23 09:35 | fddsfafsda
楼主外行.  回复  更多评论
  
# re: 自动登录telnet批处理文件 2008-12-06 09:05 | jorsen_gong
在WINDOWS下,用VBS脚本自动登陆到telnet上去后,怎么保存某些命令的输出,急!!!!!!!!!  回复  更多评论
  
# re: 自动登录telnet批处理文件 2008-12-11 22:26 | Flutist
要保存输出你使用重定向符“>”应该可以把,比如上面的echo sh.SendKeys "ls {ENTER}">>telnet_tmp.vbs
改为echo sh.SendKeys "ls >保存的文件名 {ENTER}">>telnet_tmp.vbs
@jorsen_gong
  回复  更多评论
  
# re: 自动登录telnet批处理文件 2009-06-10 11:51 | 啊啊啊
f\非常好!  回复  更多评论
  
# re: 自动登录telnet批处理文件 2009-11-11 11:35 | 卢东起
@Flutist
如果是交换机呢,不支持这样的输出重定向
  回复  更多评论
  
# re: 自动登录telnet批处理文件 2010-01-05 22:30 | sdfs
楼主你好,如果要大批量的修改配置,这样的话,效率就不高了
另外,你说还有替换方案,用其他软件代替,可否推荐个呢  回复  更多评论
  
# re: 自动登录telnet批处理文件 2010-04-27 11:17 | Bob
受益匪浅 谢谢  回复  更多评论
  
只有注册用户登录后才能发表评论。