我們的韓國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?1except:return?0finally: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()
轉載于:https://blog.51cto.com/diamondlich/1870689