感谢Python Library我能够使用他们的示例远程登录到思科交换机,我将其用于学习目的,特别是学习python。Python Telnet脚本
然而,虽然所有的代码似乎一般容易阅读,我有点困惑,以下内容:
1 - 为什么使用下面 2- if语句为什么后使用“\ n”用户名和密码写方法 3-为什么我不能让我的bash终端上的输出,当变化是逸岸承诺和成功
HOST = "172.16.1.76"
user = raw_input("Enter your Telnet username : ")
password = getpass.getpass()
tn = telnetlib.Telnet(HOST)
tn.read_until("Username: ")
tn.write(user + '\n') <----- 2
if password: <----- 1
tn.read_until("Password: ")
tn.write(password + "\n") <------2
tn.write("show run \n")
time.sleep(5)
output = tn.read_all() <----- 3
print output
print "=" * 30
print "Configuration Complete."
我不知道,为什么使用上面的if语句,通常一旦你输入用户名,然后右键获得密码提示。为什么不能,我们只需要输入:
tn.read_until("Username: ")
tn.write(user + '\n')
tn.read_until("Password: ")
tn.write(password + "\n")
至于第二点,为什么要使用的写入方法的密码和用户名后的“\ n”,如果我们要按下回车键后,我们仍要添加呢?
好的,我想我明白了。谢谢!所以bascialt“IF语句”是返回提示输入密码,如果你这样做,它使它成真,然后在设备提示符中查找密码字段,并输入input'ted(这样的词?)密码。正确?至于“\ n”,我仍然需要手动输入,虽然我输入用户名和密码后,我会尽管“\ n”会为我照顾这个。 – tafiela
注意脚本在telnet连接之前要求你输入密码。如果你只是按回车,密码将是空的。当你用'if'命令行检查密码是否为空时,如果密码不为空,那么脚本会查看telnet输出以查看密码何时请求并发送。如果它是空的,脚本假定telnet不会要求输入密码。 – Nullman