【问题标题】:Timeout Before Writing the Password In TELNETLIB在 TELNETLIB 中写入密码前超时
【发布时间】:2019-01-22 04:06:13
【问题描述】:

我正在尝试使用 ip 远程登录到设备。

import telnetlib
deviceIp = '192.168.1.135'
password1='xxxxxx'
telnetConeection = telnetlib.Telnet(deviceIp,23)
telnetConeection.read_until(b'Password: ')
telnetConeection.write(password1.encode('ascii') + b"\n")
telnetConeection.write(b'\n')
telnetConeection.write(b'port\n')
print(telnetConeection.read_all())

输出为:b'Timeout!\n'

很明显:-

  • 与设备建立连接
  • 脚本正在读取直到“密码”

我不清楚的是:为什么写入密码不起作用并且发生超时? 请帮帮我。

我们将不胜感激任何建议!

【问题讨论】:

  • 所以密码出现与否?你确定你打开了端口 (23)?
  • 是的,当我在终端上执行 telnet 192.168.1.135 23 时,它工作正常!输出为:b'Timeout!\n' on execution above
  • 你可以发布连接日志吗?
  • 对不起!不过这里没有实现任何日志记录!给您带来的不便,请见谅
  • 我想这是脚本中的基本内容导致超时;您尝试在哪个平台上运行它?也许try this script 看看你是否可以成功连接(它揭示了非常有用的调试信息),使用(python telnetlib.py -d "hostname"

标签: python telnetlib


【解决方案1】:

我认为答案不会像增加超时那么简单吗?也许另一端很慢?

timeout=30
telnetConeection.read_until(b'Password: ', timeout)

另外,您可能应该仔细检查另一端发送给您的所有内容。也许另一端甚至没有给你发送任何东西(这会指向不同的问题)。看起来你已经测试过了,你得到了你所期望的。

另外,Telnet.expect 可能会为您提供有关错误的更多信息(即 EOF?没有匹配项?)

【讨论】:

    猜你喜欢
    • 2015-12-03
    • 1970-01-01
    • 2013-08-22
    • 2013-03-17
    • 2011-12-31
    • 2011-07-18
    • 2021-04-09
    • 2016-07-27
    • 2020-10-02
    相关资源
    最近更新 更多