问题标签 [telnetlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
917 浏览

python - Python telnetlib 确定不同的登录提示

我编写了一个 python 脚本,可以通过读取列出不同 IP 地址的 csv 文件顺序登录到多个设备。从那里它为每个设备输出一个文件,其中包含通过脚本传递给设备的一些命令的内容。所以我已经走了很远。我遇到的一个问题是有时脚本会挂起。这是因为某些设备具有不同的软件版本,并且不支持传递给它们的某些命令。我关注的区别是登录后的提示。例如,登录到设备类型A有一个xyz#的命令提示符。设备类型 B 有一个命令类型 abc:。它是同一家制造商,只是型号和/或软件版本不同。根据命令提示符,我知道可以在该设备上运行的命令,而无需挂起脚本。

如果有帮助,我可以发布我的一些代码,但我真正想知道的是这是否可能。如果是这样,那么指针。关于我可能会尝试的一些建议。在使用 Python 几个月后,我知道必须有办法做到这一点。我通常不发帖,因为我可以处理其他人的帖子并制定可行的解决方案。但是我一直在努力解决这个问题,但无法将它拼凑起来,所以我正在寻求帮助。

-谢恩

编辑

在这一点上,我仍然无法编写代码来确定命令提示符。好吧,至少在 telnet 会话启动时。我可以远程登录,运行一些命令并关闭会话。然后我可以将结果写入文件。并从那里读取文件以确定提示。但理想情况下,我希望能够打开一个 telnet 会话,在会话仍然打开时运行命令来确定提示,在会话启动时读取它,然后根据提示运行特定命令。

问题似乎在于 telnet 会话仍在运行时无法读取任何命令输出。会话必须关闭,然后将所有输出写入文件。然后读取该文件以确定命令提示符,根据提示符确定要运行哪些命令,然后打开一个新的 telnet 会话并运行这些命令。

我是否应该接受我必须关闭 telnet 会话、将数据写入文件、读取它以确定提示然后再次循环返回脚本的登录部分的事实?还是我错过了什么?不确定我的描述是否清楚。

0 投票
7 回答
93698 浏览

python - telnetlib python 示例

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

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

0 投票
1 回答
2369 浏览

python - 是否可以使用 telnetlib 发送“resize pty”命令?

我正在寻找一种在使用telnetlib. 我使用 Paramiko 的resize_pty在 SSH 上实现了类似的效果,但我也需要支持 telnet 协议。这甚至可能吗(telnet 甚至有控制流)?

请注意,telnetlib 不是必需的 - 如果有更好的库,我会很乐意使用它。

更新(更多背景):我正在构建一个用于连接网络设备的基于 Web 的界面。前端是使用 JS/AJAX 构建的,它基本上只是将击键发送到后端并从中接收屏幕内容。后端是用 Python 编写的,负责打开与设备的 SSH/telnet 会话,向设备发送击键并获取输出流,然后通过 VT100 虚拟终端 ( pyte ) 传递。然后将虚拟屏幕的内容发送回前端。当用户想要在其浏览器中调整终端屏幕大小时,就会出现问题。使用 SSH 我只是发送resize_pty()通过 Paramiko,然后还调整 pyte 的虚拟终端屏幕大小。但是使用 telnet 我无法找到适当的调整大小功能来告诉设备它应该调整其终端的大小。这可能吗?

0 投票
1 回答
2244 浏览

python - 如何使用 Python 在 telnet 会话中打开和搜索文件

我正在使用以下代码登录服务器并转到特定目录(我要搜索字符串的日志文件所在的位置)。我已经使用 Paramiko 模块 (ssh) 完成了这项工作,非常简单。但是 telnetlib 模块并没有我看到的很多功能来实现这一点。有谁知道我将如何打开文件并通过它搜索特定的字符串(有问题的服务器只允许 Telnet 登录 - 没有 ssh)......谢谢:

0 投票
1 回答
717 浏览

python - 是否可以自动验证telnet?

使用telnetlib时,我注意到一些有趣的变量:

此外,此页面列出了一些详细描述AUTHENTICATION选项的 RFC。

如果我理解正确,如果 telnet 服务器支持身份验证,我应该IAC DO AUTHENTICATION在连接到它时收到。但是,当尝试在 Linux 机器上连接到telnetd时,我没有收到此选项,因此无法发送IAC WILL AUTHENTICATION.

我的理解正确吗?有没有办法让服务器执行身份验证?甚至可以自动验证 telnet 会话吗?(不听“登录:”、“用户名:”、“密码:”等类似提示)

0 投票
1 回答
1813 浏览

python - Python telnetlib 读取的唯一打印“bs”

我正在尝试使用 Python(仅Python)进行一些 telnet 自动化。当我尝试在函数中打印一些我的阅读内容时read_until,我看到的只是一系列的bs' -bs就像在backspace角色中一样,而不是其他东西。:-)

有谁知道我是否可以在 on tn,我的类实例中更改某种设置Telnet,或者更正这个?或者这是我的主人正在吐回的东西?我已经在telnetlib库上进行了一些谷歌搜索,但我还没有看到很多人们从Telnet.read_until函数中输出的例子。

这是我的代码的精简版:

我认为这并不重要,但我在 Windows 上使用 Python 2.7。

0 投票
1 回答
155 浏览

python - 带有python正则表达式的可变长度流记录?

我正在使用telnetlib远程登录我的设备。设备返回可变长度记录,不带分隔符。

每条记录的开头都有一个日期和时间,我可以将其用作分隔符。

如何使用Telnet.expect(list[, timeout])来分隔记录。

示例流:

0 投票
2 回答
4864 浏览

python - python telnetlib 模块:读取并等待响应

我遇到了与此海报类似的问题:

Python telnetlib:令人惊讶的问题

请注意下面的回复和我的回复。

本质上 telnetlib 在调用任何读取函数时不会让我读取整个响应。

在 while 循环中使用 select.select([telnetobject],[],[]) 以确保读取可用之后调用 telnet.read_very_eager() 时,我唯一会得到的是几个字符。到目前为止,我能想出的唯一解决方案是使用 time.sleep() ,但它的解决方案太粗糙了,我正在寻找更适合的解决方案。任何帮助表示赞赏...

0 投票
1 回答
5003 浏览

python - python3 telnet socket.gaierror: [Errno 8] nodename nor servname provided, or not known

我正在尝试通过 python3 脚本根据 hosts.txt 文件中的 IP 地址远程登录到路由器。但是我收到以下错误:

如果我使用相同的 IP 地址但在脚本中定义(不是取自 hosts.txt 文件),则脚本可以正常工作。请告知如何更改代码以使其正常工作?

脚本细节:

hosts.txt 到目前为止仅包含一个条目 - 只是为了使其工作:

0 投票
0 回答
356 浏览

java - Python telnetlib 性能

我的任务是转储 memcached 中的所有键,我在 stackoverflow 上找到了执行此操作的脚本:如何使用 python-memcache 从 memcached 导出所有键和值? 我对其进行了一些修改以满足我的需要,它花费了“真正的 5m57.396s”,而具有相同算法的 Java 版本花费了“真正的 0m5.190s”。我想了解我的 Python 版本的性能瓶颈在哪里。Bellow 是 Java 和 Python 版本的代码

Python:

顺便说一句,我根本不是程序员。所以不要怪我代码不好:)