首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >telnetlib python示例

telnetlib python示例
EN

Stack Overflow用户
提问于 2012-06-09 00:18:10
回答 7查看 91.8K关注 0票数 16

所以我尝试了python文档中给出的这个非常简单的例子:

代码语言:javascript
复制
import getpass
import sys
import telnetlib

HOST = "<HOST_IP>"
user = raw_input("Enter your remote account: ")
password = getpass.getpass()

tn = telnetlib.Telnet(HOST)

tn.read_until("login: ")
tn.write(user + "\n")
if password:
   tn.read_until("Password: ")
   tn.write(password + "\n")

tn.write("ls\n")
tn.write("exit\n")
print tn.read_all()

我的问题是它挂在read_all()的末尾...它不会打印出任何东西。我以前从来没有使用过这个模块,所以在继续之前,我正在尝试让这个非常基本的示例工作。顺便说一句,我用的是python 2.4谢谢。

EN

回答 7

Stack Overflow用户

发布于 2012-06-09 00:37:04

好吧,我找到了一个解决方案。在输入ls并退出之前,我需要首先指定终端类型。添加

代码语言:javascript
复制
tn.write("vt100\n") 

在"ls“帮我解决这个问题之前。

票数 15
EN

Stack Overflow用户

发布于 2013-08-29 19:18:20

如果您使用的是Windows,请确保在换行符之前添加回车符(\r):

代码语言:javascript
复制
tn.write(user.encode('ascii') + "\r\n".encode('ascii'))
票数 6
EN

Stack Overflow用户

发布于 2017-03-15 19:48:05

我知道这篇文章太晚了,但可能会对其他人有所帮助。我也努力做到这一点,但这是我的一段代码。我的远程登录将遵循特定的流程,例如它将请求loginID,然后是Password,然后您必须等待一个特定的字符串在这里显示,对于我的情况,它是"DB>",然后您可以继续执行命令和所有操作。我的输出将保存在"out"变量中

代码语言:javascript
复制
import os,re,telnetlib
host = "10.xxx.xxx.xxx"
port = 23

telnet = telnetlib.Telnet()
telnet.open(host, port)
telnet.write('loginID\r\n')
telnet.write('Password\r\n')
out = telnet.read_until("DB>", 5)
telnet.write('show cable modem reg\r\n') #Mycommand
out = telnet.read_until("DB>", 5)
telnet.write('quit\r\n')
telnet.close()

有关更多变体和帮助,请查看网站nullege

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10952514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档