3

telnetlib を使用して cisco ルーターから読み取ろうとしています

import telnetlib
tn = telnetlib.Telnet(’10.106.218.50’, 17280)
cmd1=”enable”
cmd2=”show run”
#session.write("command".encode('ascii') + b"\r")
tn.write(cmd1.encode('ascii') + b"\r")
tn.write(cmd2.encode('ascii') + b"\r")
#op=tn.read_very_eager()
#op=tn.read_some()
#op=tn.read_until('#')
op=tn.read_all()
print op

ルーターのコンソールに正常に書き込むことができますが、ルーターのコンソールから読み取ろうとすると、システムがハングします。 read_some() を使用すると、出力の一部が得られますが、 read_all() がハングして応答がありません 解決策を提案してください

4

3 に答える 3

3

read_all()

接続時にタイムアウトが指定されていない場合、python の telnetlib モジュールのコマンドはブロックされます。

呼び出しコマンドは次のようになります

tn = telnetlib.Telnet('10.106.218.50', 17280, timeout = 1)

独自のタイムアウト値を置き換えることもできます。

于 2015-05-06T18:44:22.723 に答える