【问题标题】:Python 2.7.6 telnetlib HardCode PasswordPython 2.7.6 telnetlib 硬编码密码
【发布时间】:2014-02-21 14:54:42
【问题描述】:

我制作了一个脚本,用于在 MACOS 上运行 APP 它基本上控制相机使用和IP地址

我的问题是它需要密码

我正在使用此处的 http://docs.python.org/2/library/telnetlib.html#telnetlib.Telnet 示例,但它不起作用 我不希望它提示用户输入密码,我只想在应用程序每次运行时对其进行硬编码。

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

【问题讨论】:

  • 请添加代码的重要部分和/或添加错误消息(如果有)。
  • 我已添加代码... 密码提示用户输入密码。我不想那样做。密码只需要一次,以后再也不需要了。
  • 你能帮忙吗?我仍然无法处理代码。

标签: python-2.7 passwords telnetlib


【解决方案1】:

密码由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

【讨论】:

  • 感谢您的回复。它仍然提示我输入密码。我根本不希望它提示我输入密码。我试过你的代码,但没有成功。我只是想硬编码密码,不需要用户输入!!
  • 您希望运行一个自动提取用户的 unix 密码的脚本吗?这对用户不利,对吧?如果用户同意在提示时输入密码,那很好 - 这是他/她的责任。但是第 3 方密码收集脚本非常糟糕。您可以获得密码哈希等。尝试docs.python.org/2/library/hashlib.html
  • 这与有什么问题无关上面的代码是我的Class模块的一部分它调用了一个IP地址。 IP 地址用于视频会议摄像机。该代码是帮助视频管理员更改相机位置。它打开一个带有相机位置的 GUI 对话框。您可以单击任何摄像机:现在单击时需要输入一次密码才能接受所有更改。所以我想硬编码视频管理员的密码。 GUI 无法提示密码,因此 HardCODE 是唯一的选择。上面的代码不知何故无法实现。
猜你喜欢
  • 2016-03-22
  • 2012-10-03
  • 1970-01-01
  • 2015-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多