blog

Pythonによるtelnet接続

コードは以下の通りです:...

Sep 10, 2020 · 2 min. read
シェア

コードは以下の通り:

mport logging
import telnetlib
import time
class TelnetClient():
 def __init__(self, ):
 self.tn = telnetlib.Telnet()
 # この関数は、ホストへのtelnetログインを実装する。
 def login_host(self, host_ip, username, password):
 try:
 self.tn.open(host_ip, port=23)
 except:
 logging.warning('%sネットワーク接続に失敗した % host_ip)
 return False
 # ログイン画面が表示されるまで待ち、ユーザー名を入力する。
 self.tn.read_until(b'login: ', timeout=10)
 self.tn.write(username.encode('ascii') + b'
')
 # Passwordが表示されるまで待ち、ユーザー名を入力する。
 self.tn.read_until(b'Password: ', timeout=10)
 self.tn.write(password.encode('ascii') + b'
')
 # サーバーに十分な応答時間を与えるため、結果を受け取る前に2秒遅延させる。
 time.sleep(2)
 # ログイン結果を取得する
 # read_very_eager()フェッチされるのは、フェッチ後のすべての出力である。
 command_result = self.tn.read_very_eager().decode('ascii')
 if 'Login incorrect' not in command_result:
 logging.warning('%sログイン成功 % host_ip)
 return True
 else:
 logging.warning('%sログインに失敗しました。ユーザー名またはパスワードが間違っています。 % host_ip)
 return False
 # この関数は、渡されたコマンドを実行し、その結果を出力する。
 def execute_some_command(self, command):
 # コマンドを実行する
 self.tn.write(command.encode('ascii') + b'
')
 time.sleep(2)
 # コマンド結果を取得する
 command_result = self.tn.read_very_eager().decode('ascii')
 logging.warning('コマンド実行結果
%s' % command_result)
 # telnetを終了する
 def logout_host(self):
 self.tn.write(b"exit
")
if __name__ == '__main__':
 host_ip = '192.168.1.X'
 username = 'root'
 password = 'XXXX'
 command1 = 'XXXX'
 telnet_client = TelnetClient()
 # ログイン結果がTrueで返された場合、コマンドを実行し、終了する。
 if telnet_client.login_host(host_ip, username, password):
 telnet_client.execute_some_command(command1)
 telnet_client.logout_host()
Read next

sftpとftpの違い

SFTPとFTPは非常に似ており、バッチ転送、フォルダ/ディレクトリのナビゲーション、ファイルの移動、フォルダ/ディレクトリの作成、ファイルの削除などをサポートしています。しかし、まだ違いがあります。ここでは、SFTPとFTPの違いを見てみましょう。

Sep 10, 2020 · 1 min read