ファイアウォールから接続テーブルを取得したい。いくつかのケースでは、それはtelnetセッションのキャプチャが遅すぎる - pexpectとtelnetlibが遅すぎる
以上200Kラインとすることができる「10.16.25.63:80内部46.33.77.20:53415外側TCP、午後12時00分04秒アイドル、バイト3230、フラグUIOB」
等。
私はこれらのテーブルをつかむためにpexpectとtelnetlibの両方を実装しようとしました。残念ながら、タイムアウトや40kを超える何かで死ぬ。
pexpect実装:
connect.send("sho conn\n")
connect.expect("<--- More --->", timeout=360)
tmp_txt = connect.before
telnetlib実装:
telnet.write("sho conn\n")
tmp_text = telnet.read_until("<--- More --->")
は、この情報をつかんで、より堅牢な方法はありますか?私は、ページャの値で(この実行前に)一度に与えられた行の数を制御します。また、ファイアウォールのCPUを監視しているので、接続が表示されていることがわかります。あまりにも多すぎるか、またはpexpectやtelnetlibが遅すぎて追いつくことができません。
ありがとうございました。
http://www.lag.net/paramiko/ – tMC
@tMC - 残念ながら、SSHではなくTelnetでなければなりません。 – BDub
このファイアウォールはアプライアンスであり、Linuxを実行する標準的なPCではないようです。これはどんな機械ですか? – tMC