1. 程式人生 > 其它 >批量檢測網路層面是否已經放通埠(Python指令碼)

批量檢測網路層面是否已經放通埠(Python指令碼)

---指令碼目的

輸入埠,檢測網路層面是否已經放通,本指令碼為python指令碼

---使用方式

1. 把要檢測的IP寫入當前目錄的iplist.txt

2. 執行指令碼,按要求輸入要檢測的埠號,連線失敗的IP結果會直接顯示

---指令碼內容

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import socket

#開啟IP列表
TextFile = open(r'iplist.txt')
list_str = TextFile.read().strip()
TextFile.close()

#定義埠
Port = input("請輸入檢測埠:")

#定義空列表
# OK_list = []
Timeout_list = []
Down_list = []
ip_list = list(list_str.split())

#定義連線方法
def IsOpen(ip, port):
socket.setdefaulttimeout(2)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((ip, port))
s.shutdown(2)
# OK_list.append([ip, port])
pass
except socket.timeout:
Timeout_list.append([ip, port])
except:
Down_list.append([ip, port])

for i in range(len(ip_list)):
IsOpen(ip_list[i],int(Port))

lists = {'connection failed':Timeout_list,'connection refused':Down_list}

for status,i in lists.items():
#status即為timeout,down兩種狀態,格式化輸出
print(status.center(40,'-'))
if not i:
print('null')
continue
for ip,port in i:
print(ip,port)