gpt4 book ai didi

python - telnetlib read_until 缓冲区大小

转载 作者:行者123 更新时间:2023-12-01 06:02:04 25 4
gpt4 key购买 nike

背景:我正在拉动防火墙的连接表,以便构建一个最高的谈话者/监听者列表。

在某些情况下,连接表有 200,000 多个条目。我正在使用 telnetlib 远程连接到防火墙并获取连接表。我使用 read_until 来捕获数据。但是,当表大于 40,000 个条目时,它会挂起。当我杀死它时,我看到以下内容:

Traceback (most recent call last):
File "test2.py", line 152, in ?
main()
File "test2.py", line 120, in main
tmp_text = telnet.read_until(pager_text)
File "/usr/lib/python2.3/telnetlib.py", line 317, in read_until
self.process_rawq()
File "/usr/lib/python2.3/telnetlib.py", line 488, in process_rawq
self.cookedq = self.cookedq + buf[0]
KeyboardInterrupt

我是否遇到了某种缓冲区?获取这些数据的更好方法是什么?

谢谢。

最佳答案

我上次使用 telnetlib 是很久以前的事了,但是...据我所知,使用 read_until 最适合具有更多交互性且较少发生大量数据转储的 session 。这个想法是,您正在等待特定的模式响应,然后再次进行通信。

您是否尝试过其他读取选项(例如 read_some)并在本地建立响应?正如你所说,这绝对可能是缓冲问题。

您还可以尝试read_until并为其指定一个超时值,看看是否可以获取至少部分数据,然后再次读取。

此外,我注意到您正在使用 python2.3 。如果您没有绑定(bind)到该版本,我在 telnetlib 的源代码中注意到最近的更改专门改进了超时处理。

关于python - telnetlib read_until 缓冲区大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9896830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com