【发布时间】:2011-06-01 18:19:13
【问题描述】:
我正在尝试远程登录到 Cisco 交换机并在其上运行几个命令。我可以检查主机是否不存在,不知道如何检查用户名或密码是否正确。这是我到目前为止得到的(这是我课程的一部分)
def login(self):
if self.user_name and self.password:
try:
self.connection=telnetlib.Telnet(self.telnet_host)
try:
self.connection.read_until('sername:',1)
self.connection.write(self.user_name+'\r\n')
self.connection.read_until('assword:',1)
self.connection.write(self.password+'\r\n')
self.connection.read_until(self.prompt,1)
print "Connected"
self.loggedON=True
except EOFError:
print "Authentication to "+ self.telnet_host+" failed.\n"
return
except:
print "Can't connect to "+self.telnet_host+"\n"
return
else:
if not self.user_name:
self.user_name=raw_input("Username: ")
self.login()
else:
self.password=raw_input("Password: ")
self.login()
即使密码或用户名错误,它仍然会说它已连接。
【问题讨论】:
-
Telnet...纯文本认证...'nuff说。
-
我不知道您要做什么,但是您是否研究过 SNMP?使用 SNMP 很有可能是更好的解决方案。
-
回答您的问题:您必须阅读发送密码后得到的信息,并将其与登录时收到的消息进行比较。我不知道
read_until是否有超时但如果不是,您的程序将永远等待或直到交换机终止连接。
标签: python authentication telnet verification cisco