自动登录telnet批处理文件

时间:2021-02-25 15:15:52

转:http://blog.sina.com.cn/s/blog_413d03850100el33.html

今天花了一天时间在网上找资料,怎样用c#写一个tlenet程序。网上搜到用类ProcessStartInfo来做,可惜执行telnet后接收不到输入用户名和密码信息。

            System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo("cmd");
psi.RedirectStandardOutput = true;
psi.RedirectStandardInput = true;
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);

p.StandardInput.WriteLine("telnet 166.111.8.238");

String s = p.StandardOutput.ReadToEnd();
p.StandardInput.WriteLine(@"exit");
p.WaitForExit();

MessageBox.Show(s);


再次搜索,在csdn论坛发现有人回帖说使用批处理自动登录,然后处理它生成的日志文件可以解决:

方法:

VBS法(Windows Script Host)

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

batch_tel.bat

rem 启动telnet
start telnet.exe -f C:\213.log
rem batch telnet
cscript //nologo tel.vbs


 
tel.vbs

set sh=WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000
'向telnet发送我们平时录入的命令
sh.SendKeys "open 127.0.0.1"
WScript.Sleep 1000
sh.SendKeys "{ENTER}"
WScript.Sleep 1000
sh.SendKeys "password{ENTER}"
WScript.Sleep 1000
sh.SendKeys "administrator{ENTER}"
WScript.Sleep 1000
sh.SendKeys "pwd1234{ENTER}"
WScript.Sleep 1000
'运行cisco的show run命令
sh.SendKeys "show run{ENTER}"

 

对于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 %