0

Python の telnetlib モジュールに奇妙な問題が見つかりました。telnetlib を使用してサーバーにアクセスし、情報を取得しようとすると、常に奇妙な文字が表示されます。エンコードの問題ではないと確信しています。出力は次のようになります。

1[2J[3;1HPort Type       IP1             IP2             IP3             IP4[4;1H 01  Real COM  [5;1H 02  Real COM  [6;1H 03  Real COM  [7;1H 04  Real COM  [8;1H 05  Real COM  [9;1H 06  Real COM  [10;1H 07  Real COM  [11;1H 08  Real COM  [12;1H 09  Real COM  [13;1H 10  Real COM  [14;1H 11  Real COM  [15;1H 12  Real COM  [16;1H 13  Real COM  [17;1H 14  Real COM  [18;1H 15  Real COM  [19;1H 16  Real COM  [20;1H

しかし、いくつかのシェルのようなアプリケーションを使用してサーバーに telnet で接続すると、得られるものは非常に優れており、奇妙な文字はありません。以下は、cygwin を使用して得た結果です。

Port Type       IP1             IP2             IP3             IP4
01  Real COM   Listen
02  Real COM   Listen
03  Real COM   147.128.14.147
04  Real COM   Listen
05  Real COM   Listen
06  Real COM   Listen
07  Real COM   Listen
08  Real COM   Listen
09  Real COM   Listen
10  Real COM   Listen
11  Real COM   Listen
12  Real COM   Listen
13  Real COM   Listen
14  Real COM   Listen
15  Real COM   Listen
16  Real COM   Listen

誰かが同じ問題に遭遇しましたか?そして、なぜこれが起こるのですか?telnetlib を使用する場合、どうすれば「きれいな」結果を得ることができますか?

以下は簡単なスクリプトです。

import telnetlib
if __name__ == '__main__':
    HOST = '10.185.20.2'
    tn = telnetlib.Telnet(HOST)
    r1 = tn.read_until('selection: ', 5)
    print r1
    tn.write('8' + '\r\n')
    r2 = tn.read_until('selection: ', 5)
    print r2
    tn.write('1 ' + '\r\n')
    r3 = tn.read_until('cancel ...', 5)
    print r3
4

1 に答える 1