我們的韓國bss系統上線之後,要求對主機的端口、資源使用進行統計,端口每個主機去看,太費勁了,所以,就寫了這樣一個小程序,不是很完美但是,可以用啊!哈哈哈,別噴,本人是個菜鳥
#!/usr/bin/python # -*- coding:utf-8 -*- import socket import sys #connector,使用socket模塊,設定超時時間爲0.1【內網環境下】,連接成功返回1,連接失敗返回0 def connector(ip,port): s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) try: s.settimeout(0.1) s.connect((ip,int(port))) s.shutdown(2) return 1 except: return 0 finally: s.close() #程序開始,定義所有server,此處用了json,便於後面腳本好寫 server_list={ "server-list": [ { "name": "api-1-18", "ip": "xxx.xxx.xxx.18" }, { "name": "api-2-19", "ip": "xxx.xxx.xxx.19" }, { "name": "web-1-24", "ip": "xxx.xxx.xxx.24" }, { "name": "db-1-21", "ip": "xxx.xxx.xxx.21" }, { "name": "db-2-23", "ip": "xxx.xxx.xxx.23" }, { "name": "ftp-1-26", "ip": "xxx.xxx.xxx.26" }, { "name": "***-1-30", "ip": "xxx.xxx.xxx..30" } ] } #對列表中所有server的所有端口進行遍歷掃描,並將打開的端口輸出到終端 for server in server_list['server-list']: for port in range(1,65535): state=connector(server['ip'], port) if state == 1: print "["+str(port)+"] is open on this server ["+str(server['name'])+"]" sys.exit()