1

Python の telnetlib モジュールを使用して、リモート デバイスから情報を取得しようとしています。残念ながら、リモート デバイスには「ログアウト」タイプのコマンドがないようです。そのため、手動で CTRL-] を使用して接続を手動で閉じる必要があります (手動で telnet を実行する場合)。Telnet.close() を使用してみましたが、データが返されないようです。

提案?

HOST = "172.16.7.37"
user = "Netcrypt"
password = "Netcrypt"

tn = telnetlib.Telnet(HOST)

tn.read_until("User: ")
tn.write(user + "\n")
if password:
   tn.read_until("Password: ")
   tn.write(password + "\n")

tn.write("session \n")

print tn.read_until("NC_HOST> ")

tn.close()
4

2 に答える 2

2

CTRL+]の ASCII 文字をtelnet 接続に書き込んでみましたか?

tn.write('\x1d')

于 2012-04-05T21:28:39.133 に答える
0

私はそれを必要としなくなりました。取引は、プロンプトまで読み、コマンドを発行し、次のプロンプトまで読む必要がありました。read_all() は必要ありません。

作業コードは次のとおりです。

import telnetlib

HOST = "172.16.7.37"
user = "Netcrypt"
password = "Netcrypt"

tn = telnetlib.Telnet(HOST)

tn.read_until("User: ")
tn.write(user + "\n")
if password:
    tn.read_until("Password: ")
    tn.write(password + "\n")

    tn.read_until('NC_HOST>')

    tn.write("session\n")

    data = tn.read_until('NC_HOST>')

print data
于 2012-04-06T15:30:29.630 に答える