ホームページ  >  記事  >  バックエンド開発  >  Pythonリモートログインコード

Pythonリモートログインコード

WBOY
WBOYオリジナル
2016-06-16 08:47:461229ブラウズ

Python には telnetlib があり、その機能はホストへの Telnet 接続エンティティを確立し、(キーボードで入力するのと同じように) ホストにコマンドを送信し、接続からデータを受信することです。これを使用すると、デモ 1 のすべての内容を「人間とマシン」の通信から「マシンとマシン」の通信に変更することができ、pop3 メールボックスも処理できるようになります。ただし、pop3 はすでに試しているので、今回は試してみましょう。実際の Telnet ポート 23 を出力して、いくつかの楽しいことを実行します。



コード スニペットは次のとおりです。 1 # telnetdo.py 2 #!/usr/bin/env python 3 4 def telnetdo(HOST) =None、USER=None、PASS=None、COMMAND=None): #関数を定義すると、簡単に使用できます 5 import telnetlib, sys 6 7 if not HOST: #必要な値が指定されていない場合情報、ユーザー入力を要求します 8 TRY: 9 Host = SYS.ARGV [1]#覚えておいてください、シーケンスは 0 から始まり、sys.argv [0] がプログラム名になります 10 user = sys.argv [2] 11 pass = sys.argv[3] 12 COMMAND = sys.argv[4] 13 以下を除く: 14 print "使用法: telnetdo.py ホスト ユーザー パス 'コマンド'" 15 return 1 6 17 msg = ['デバッグ メッセージ:n'] #これはホストから返信されたすべてのメッセージを保存するために使用され、デバッグに非常に役立ちます 18 19 tn = telnetlib.Telnet() #Telnet 接続エンティティを準備します 20 try: 21 tn.open(HOST) #ホストにバインドされた接続終了 HOST は次の場所に移動します22 以下を除く: 23 print "ホストを開けません" 24 return 25 26 msg.append(tn.expect(['login:'],5)) #ホストが 'login:' 文字を含むメッセージを返すのを待ち、待機しています制限時間は 5 秒です。 27 tn.write (user+'n')# ユーザーが 28#pcheung であるなど、USER+'N' の文字列をホストに送信します。 ' 同じように入力します。30 msg.append(tn.expect(['Password:'],5)) # 入力するパスワードがある場合は、パスワード文字列を送信します。 msg.append ( msg.append‑‑‑‑ #‑ を含むメッセージWords 'Password:' 32 33 msg.append(tn.expect([USER],5)) #通常、ホストはログイン後にログイン名を表示するため、ホスト応答でこの 34 を探します。 のような文字があれば、 、ログインが成功したことを意味します 35 tn.write(COMMAND+'n') #ホストにコマンドを発行します 36 msg.append(tn.expect(['%'],5)) #5 秒間待ちます。プログラム完了後、通常は受信します 37 tn.close() #接続を閉じる 39 del tn 40 return msg[len(msg)-1][2] #Receipt メッセージは最後まで返されました。 41 #その他は追加情報です。43 44 if __name__ == '__main__'#これはpythonの一般的なトリックです:telnetdo.pyプログラム45 dprompt 46の場合#他のプログラムからインポートを使用する場合、Telnetdoが使用されている場合、それは「Telnetdo」49になりますprint telnetdo() #このように書く 利点は、今後 telnetdo が内線番号になることです 50 #module で、 51 # 呼び出すには telnetdo.telnetdo(HOST ,USER,PASS,COMMAND) を使用してください!
このプログラムの使用法は次のとおりです:



コード スニペットは次のとおりです: > chmod +x telnetdo.py > telnetdo.py 'somehost' 'glace' 'xxxxxx ' 'ls -lF' (0, , '

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。