批量检测网络层面是否已经放通端口(Python脚本)

时间:2021-09-10
本文章向大家介绍批量检测网络层面是否已经放通端口(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)

原文地址:https://www.cnblogs.com/jzhsw/p/15250798.html