telnetによる穴あけ疎通確認ツールを作りました
ツール、できました。
出力はこんな感じ。NGのものがわかりやすく出ています。
root@syachineko-Virtual-Machine:~/work# ./telnet_tool.py test
192.168.3.1 8080
telnet: Unable to connect to remote host: Connection refused
192.168.3.1 8090
telnet: Unable to connect to remote host: Connection refused
192.179.11.11 80
Result-------------------------------
Summary Total:3 OK:2 NG:1NG Lists-----------------------------
try <telnet 192.179.11.11 80> -->NG-------------------------------------
なお、入力として以下のファイルを読ませます。
<telnetしたいIP>::<ポート番号、カンマで区切れば複数選択可能>
コードは以下
#!/usr/bin/python3
import subprocess
import sys# Variables
OKLists =
NGLists =# input data
# <IP>::<Port>importFile = open(sys.argv[1], "r")
importFileList = importFile.readlines()
items = []
for i in importFileList:
items.append(i.replace("\n",""))for item in items:
ip,ports=item.split("::")
for port in ports.split(","):
print(ip,port)
ans = "try <telnet " + ip + " " + port + "> -->"# try command
try:
res = subprocess.run(["telnet",ip,port], stdout=subprocess.PIPE, timeout=1)
ans += "OK"
OKLists.append(ans)except:
ans += "NG"
NGLists.append(ans)print("Result-------------------------------")
print("Summary Total:"+str(len(OKLists)+len(NGLists))+" OK:"+str(len(OKLists))+ " NG:"+str(len(NGLists)))
print("")
print("NG Lists-----------------------------")
for result in NGLists:
print(result)
print("")
print("-------------------------------------")
特に、コマンド実行時にタイムアウトを設定して、
それをTryで判別することで成功/失敗をいい感じに分離できました。
これ、現場でも使えると楽なんだけど、どうだろうなぁ・・・。
以上。