回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我试图通过思科终端/通信服务器连接到思科节点的控制台连接。
为此,我telnet到特定端口上的cisco终端/通信服务器的IP地址,比如说X.X.X.X-端口2068。
当我通过CLI在计算机上执行此操作时,它看起来如下所示:</p>
<pre><code>[user@computer]$ telnet X.X.X.X 2068
Trying X.X.X.X...
Connected to X.X.X.X (X.X.X.X).
Escape character is '^]'.
Username: <user>
Password:
console-cisco-node>
</code></pre>
<p>所以通过我电脑上的CLI没问题。
但是当我在我的计算机上运行下面的Python代码时,它似乎不起作用。。。在</p>
^{pr2}$
<p>当我运行这个代码时,我只能看到这个,它看起来像'读一些()'因为cisco终端/通信服务器没有任何信息,所以永远等待?
[同样适用于tn.全部阅读()]</p>
<p>我通过按CTRL-C停止正在运行的代码</p>
<pre><code>[user@computer]$ ./test.py
Telnet(X.X.X.X,2068): recv '\xff\xfb\x01\xff\xfb\x03\xff\xfd\x18\xff\xfd\x1f'
Telnet(X.X.X.X,2068): IAC WILL 1
Telnet(X.X.X.X,2068): IAC WILL 3
Telnet(X.X.X.X,2068): IAC DO 24
Telnet(X.X.X.X,2068): IAC DO 31
Telnet(X.X.X.X,2068): recv '\xff\xfc\x01'
Telnet(X.X.X.X,2068): IAC WONT 1
Telnet(X.X.X.X,2068): recv '\xff\xfc\x03'
Telnet(X.X.X.X,2068): IAC WONT 3
Telnet(X.X.X.X,2068): recv '\xff\xfe\x18'
Telnet(X.X.X.X,2068): IAC DONT 24
Telnet(X.X.X.X,2068): recv '\xff\xfe\x1f'
Telnet(X.X.X.X,2068): IAC DONT 31
Traceback (most recent call last):
File "./test.py", line 7, in ?
data = tn.read_some()
File "/usr/lib64/python2.4/telnetlib.py", line 345, in read_some
self.fill_rawq()
File "/usr/lib64/python2.4/telnetlib.py", line 521, in fill_rawq
buf = self.sock.recv(50)
<a href="https://www.cnpython.com/pypi/keyboard" class="inner-link">keyboard</a>Interrupt
</code></pre>
<p>当我改变读一些()'在代码中'田纳西渴望()'或'非常渴望阅读()'或'田纳西懒洋洋的()'或'你很懒()'并再次运行代码,显示如下:</p>
<pre><code>[user@computer]$ ./test.py
variable data is EMPTY
</code></pre>
<p>当我将python代码更改为不连接到cisco节点的控制台连接,而是连接到cisco节点的管理连接(正常端口23上的另一个IP地址Y.Y.Y.Y),如下所示,我看到了以下输出:</p>
<pre><code>[user@computer]$ ./test1.py
Telnet(Y.Y.Y.Y,23): recv '\xff\xfb\x01\xff\xfb\x03\xff\xfd\x18\xff\xfd\x1f'
Telnet(Y.Y.Y.Y,23): IAC WILL 1
Telnet(Y.Y.Y.Y,23): IAC WILL 3
Telnet(Y.Y.Y.Y,23): IAC DO 24
Telnet(Y.Y.Y.Y,23): IAC DO 31
Telnet(Y.Y.Y.Y,23): recv '\r\n************************************************'
************************************************
variable data is FILLED !!!
</code></pre>
<p>所以我认为Python代码没问题。
只是cisco终端/通信服务器(X.X.X.X)的反应方式与正常情况不同,我认为Python telnetlib很困惑。在</p>
<p>有没有人经历过类似的事情?在</p>