質問編集履歴
2
ソースコードに重要情報が記載されていたので修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -22,6 +22,17 @@
|
|
22
22
|
### 該当のソースコード
|
23
23
|
|
24
24
|
```python
|
25
|
+
# -*- coding:utf-8 -*-
|
26
|
+
import getpass
|
27
|
+
import sys
|
28
|
+
import telnetlib
|
29
|
+
|
30
|
+
HOST = "xxx.xxx.xxx.xxx"
|
31
|
+
#user = input("Enter your remote account: ")
|
32
|
+
#password = getpass.getpass()
|
33
|
+
user = b"adminuser"
|
34
|
+
password = b"dummypassword"
|
35
|
+
|
25
36
|
tn = telnetlib.Telnet(HOST)
|
26
37
|
|
27
38
|
tn.read_until(b"login: ")
|
1
問題点が明確になっていなかったため、read_all()にコマンドの実行結果が出力されないと明記しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Allied Telesis製のL3スイッチに対してpythonのtelnetlibで操作を試みています。
|
4
4
|
|
5
|
-
telnetlibのサンプルを参考に、単純なコマンドを実行して結果を出力してみたところ、結果が出力されませんでした。
|
5
|
+
telnetlibのサンプルを参考に、単純なコマンドを実行して結果を出力してみたところ、read_all()にコマンドの結果が出力されませんでした。
|
6
6
|
途中経過をread_eager()を使用して出力してみましたが何も表示されないため、正常にコマンドを送信できていないのだと思われます。
|
7
7
|
|
8
8
|
何が原因かが全くつかめない状況です。
|
@@ -10,7 +10,63 @@
|
|
10
10
|
|
11
11
|
### 発生している問題・エラーメッセージ
|
12
12
|
スクリプトを実行した結果は以下の通りです。
|
13
|
+
修正後
|
14
|
+
```shell
|
15
|
+
$ python3 telnet.py
|
16
|
+
Login:
|
17
|
+
Login Success
|
18
|
+
b''
|
19
|
+
b''
|
20
|
+
exit
|
13
21
|
```
|
22
|
+
### 該当のソースコード
|
23
|
+
|
24
|
+
```python
|
25
|
+
tn = telnetlib.Telnet(HOST)
|
26
|
+
|
27
|
+
tn.read_until(b"login: ")
|
28
|
+
print("Login:")
|
29
|
+
|
30
|
+
tn.write(user + b"\n")
|
31
|
+
if password:
|
32
|
+
tn.read_until(b"Password: ")
|
33
|
+
tn.write(password + b"\n")
|
34
|
+
print("Login Success")
|
35
|
+
|
36
|
+
tn.read_until(b'>')
|
37
|
+
|
38
|
+
#ページ送り無効
|
39
|
+
tn.write(b"terminal length 0\n")
|
40
|
+
print(tn.read_eager())
|
41
|
+
|
42
|
+
tn.read_until(b">")
|
43
|
+
|
44
|
+
|
45
|
+
#特権モードへ
|
46
|
+
tn.write(b"enable\n")
|
47
|
+
|
48
|
+
tn.read_until(b"#")
|
49
|
+
|
50
|
+
#tn.write(b"show wireless ap status\n")
|
51
|
+
tn.write(b"show virsion\n")
|
52
|
+
print(tn.read_eager())
|
53
|
+
|
54
|
+
tn.read_until(b"#")
|
55
|
+
tn.write(b"exit\n")
|
56
|
+
|
57
|
+
print(tn.read_all().decode("ascii"))
|
58
|
+
|
59
|
+
tn.close()
|
60
|
+
```
|
61
|
+
|
62
|
+
|
63
|
+
|
64
|
+
ご指摘を受けてソースを修正しました。
|
65
|
+
・tn.read_eager() が出力されるように修正した
|
66
|
+
・デバッグ用のメッセージ部分を削除した
|
67
|
+
|
68
|
+
ご指摘修正前の出力結果
|
69
|
+
```shell
|
14
70
|
~/python$ python3 -V
|
15
71
|
Python 3.6.9
|
16
72
|
|
@@ -27,7 +83,7 @@
|
|
27
83
|
exit
|
28
84
|
```
|
29
85
|
|
30
|
-
|
86
|
+
ご指摘修正前のソース
|
31
87
|
```python
|
32
88
|
# -*- coding:utf-8 -*-
|
33
89
|
import getpass
|
@@ -85,6 +141,7 @@
|
|
85
141
|
tn.close()
|
86
142
|
```
|
87
143
|
|
144
|
+
|
88
145
|
### 試したこと
|
89
146
|
Windows からTeraTearm や 今回操作しているクライアントPCからTelnetクライアントで接続し、該当のコマンドを操作してみましたが、問題なく操作できました。
|
90
147
|
操作しているスイッチ固有の問題ではないかと考えていますが、検索して近い事象は見当たりませんでした。
|