如何实现自动telnet登陆
简单的说就是有一个按钮,点一下后能够自动调用系统的telnet程序登陆到某个指定的地址,同时要自动输入用户名和密码。如果仅仅是打开telnet程序可以用ShellExecute来调用,但是telnet没有指定用户名和密码的参数,所以没法实现自动登陆,大家有什么办法没?
[解决办法]
system("cmd /c telnet.exe <c:\\in.txt >c:\\out.txt");
//c:\\in.txt的内容为手动telnet时输入的所有内容
open 192.168.1.123
login
登录用户名
密码
logout
quit
[解决办法]
在网上搜索了一些资源,发现这个方法确实可以,希望对你有用
在telnet.bat文件,中使用vba
ip: 192.168.0.1
userName :ABCDEFG
password :123456
bat文件内容如下
----------------------------------------
@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.0.1" >>telnet_tmp.vbs
cho WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "ABCDEFG{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "123456{ENTER}">>telnet_tmp.vbs
start telnet
cscript //nologo telnet_tmp.vbs
del telnet_tmp.vbs
[解决办法]
-----------------------------------------------
#include "stdafx.h"
#include <stdlib.h >
int main()
{
char *cmd[] = {"@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.0.1\" >>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 \"ABCDEF{ENTER}\">>telnet_tmp.vbs",
"echo WScript.Sleep 300 >>telnet_tmp.vbs",
"echo sh.SendKeys \"123456{ENTER}\">>telnet_tmp.vbs",
"start telnet",
"cscript //nologo telnet_tmp.vbs",
"del telnet_tmp.vbs"};
for(int i=0; i<13; i++)
{
system(cmd[i]);
}
}
[解决办法]
使用AutoHotKey软件几乎可以将所有手动能完成的功能变成用脚本实现http://www.autohotkey.com
[解决办法]
使用管道操作传进用户名和密码给telnet
echo "user\npass"|telnet ip
[解决办法]
如果是用c/c++, expect除了提供脚本以外,还提供开发库的,ubuntu上面是expect-dev。
如果是perl, 需要expect模块:
my $exp = Expect->spawn("telnet 1.1.1.1");
$exp->send("aaaa\n");
$exp->expect("password:");
$exp->send("bbbb\n");
sleep(1);
#$exp-> expect("#");
$exp->send("telnet 2.2.2.2\n");
$exp->expect("Connected");
$exp->send("root\n");
$exp->expect("Password ");