2014-02-21 63 views
0

我做了这是用来使用在MacOS 运行一个程序的时候,基本上控制相机的脚本和IP地址的Python 2.7.6 telnetlib硬编码密码

我的问题是,它需要一个密码

我使用http://docs.python.org/2/library/telnetlib.html#telnetlib.Telnet这个例子,但它不起作用 我不希望它提示用户输入密码,我只是想每次运行应用程序时都要HardCode。

if ip: 
     self.conn = telnetlib.Telnet(ip, 24) 
     self.consume_telnet() 
    else: 
     self.conn = None 


def telnet_send(self, s): 
    passCode = '********'        
    password = getpass.getpass() 
    if self.conn: 
     self.conn.write(s + '\r\n') 
     if password: 
      self.conn.read_until('Password: ') 
      self.conn.write(password.strip() + '\n') 

    else: 
     print s 
+0

如果您有任何问题,请添加代码的重要部分和/或添加错误消息。 – CSchulz

+0

我已添加代码... 密码提示用户输入密码。我不想这样做。密码只需要一次,永远不需要。 – user3337714

+0

你能否请求帮忙?我仍然无法处理代码。 – user3337714

回答

0

密码提示getpass.getpass()调用。此方法始终要求用户输入密码。检查这个文档页面:http://docs.python.org/2/library/getpass.html

我假设你正在做外部初始化telnet_send方法。只需在此初始化代码中设置密码 - 如self.password = getpass.getpass(),然后在其他地方使用此密码。

self.password = getpass.getpass() 

def telnet_send(self, s): 
    passCode = '********'        
    if self.conn: 
     self.conn.write(s + '\r\n') 
     if self.password: 
      self.conn.read_until('Password: ') 
      self.conn.write(self.password.strip() + '\n') 
    else: 
     print s 
+0

感谢您的回复。 它仍然提示我输入密码。 我不希望它提示我输入密码。我尝试了你的代码,但徒劳无功。我只想要HARDCODE密码,不需要用户输入! – user3337714

+0

您是否期望运行一个脚本来自动提取用户的unix密码?这对用户不好,对吧?如果用户同意按提示输入密码,那就没问题 - 这是他/她的责任。但是第三方密码收集脚本是非常糟糕的。你可以得到一个密码哈希等尝试http://docs.python.org/2/library/hashlib.html –

+0

这与任何问题无关 上述代码是我的班级模块的一部分 它调用一个IP地址。 IP地址用于视频会议摄像机。代码是帮助视频管理员更改摄像头位置。它会打开一个带相机位置的GUI对话框。您可以点击任何摄像头:现在点击时需要输入密码才能接受所有更改。所以我想要HardCode视频管理员的密码。 GUI不能提示密码,因此HardCODE是唯一的选择。 上面的代码不知道怎么实现。 – user3337714