结合GPT与Python实现端口检测工具(含多线程)

端口检测器是一个非常实用的网络工具,它主要用于检测服务器或本地计算机上的特定端口是否处于开放状态。通过这个工具,你可以快速识别和诊断网络连接问题,确保关键服务的端口能够正常接收和处理数据。这对于网络管理员和开发者来说是一个不可或缺的诊断工具,帮助他们维护网络健康,优化系统性能,以及及时发现和解决潜在的安全隐患。
一、下载体验
下载地址:https://ewbang.lanzoul.com/intM027ov67i
二、程序源码
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 作者:Roc-xbimport encodings.idna
import socket
import tkinter as tk
from tkinter import messagebox, ttk
from concurrent.futures import ThreadPoolExecutor, as_completed
import redef check_port(ip_or_domain, port):try:with socket.create_connection((ip_or_domain, port), timeout=1):return Trueexcept (socket.timeout, socket.error):return False# 检查是否是域名或者IP
def is_ip_or_domain(input_str):# IP地址的正则表达式ip_pattern = r'^\d{1,3}(\.\d{1,3}){3}$'# 域名的正则表达式,这个比较简单,可以根据需要扩展domain_pattern = r'^[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,})$'if re.match(ip_pattern, input_str) or re.match(domain_pattern, input_str):return Trueelse:return Falsedef on_check():ip_or_domain = ip_entry.get().strip() or "127.0.0.1"if not is_ip_or_domain(ip_or_domain):messagebox.showwarning("输入错误", "输入域名或IP不合法")returnports_input = port_entry.get().strip() or "22,23,80,3389,443,5432,6379,1433,1521,3306"if not ports_input:messagebox.showwarning("输入错误", "请输入端口号")returnelse:try:print(ports_input)selected_ports = [int(p.strip()) for p in ports_input.split(",")]except ValueError as exc:messagebox.showerror("错误", "端口号输入不正确,请确保所有端口号都是数字: {}".format(exc))returnresult_list.delete(*result_list.get_children())# 配置标签result_list.tag_configure('green', foreground='green', font=16)result_list.tag_configure('red', foreground='red', font=16)# 使用线程池来并行检查端口with ThreadPoolExecutor(max_workers=10) as executor:future_to_port = {executor.submit(check_port, ip_or_domain, port): port for port in selected_ports}for future in as_completed(future_to_port):port = future_to_port[future]try:status = future.result()result = "开放" if status else "关闭"result_color = "green" if status else "red"# 插入带有颜色的行result_list.insert("", "end", values=(ip_or_domain, port, result), tags=(result_color,))except Exception as exc:messagebox.showerror("错误", "端口号输入不正确,请确保所有端口号都是数字: {}".format(exc))def on_clear():ip_entry.delete(0, tk.END)port_entry.delete(0, tk.END)result_list.delete(*result_list.get_children())if __name__ == '__main__':# 创建主窗口root = tk.Tk()root.title("端口检查器(作者QQ:327844761)")# 禁止调整窗口大小root.resizable(0, 0)# 创建输入框和标签tk.Label(root, text="IP或域名 (默认: 127.0.0.1)").grid(row=0, column=0, padx=10, pady=10)ip_entry = tk.Entry(root, width=30)ip_entry.grid(row=0, column=1, padx=10, pady=10)tk.Label(root, text="端口号 (逗号分隔)").grid(row=1, column=0, padx=10, pady=10)port_entry = tk.Entry(root, width=30)port_entry.grid(row=1, column=1, padx=10, pady=10)# 创建按钮check_button = tk.Button(root, text="检查端口", command=on_check)check_button.grid(row=6, column=0, padx=5, pady=5)clear_button = tk.Button(root, text="清空输入", command=on_clear)clear_button.grid(row=6, column=1, padx=5, pady=5)# 创建结果显示列表result_list = ttk.Treeview(root, columns=("IP/域名", "端口", "状态"), show="headings")result_list.heading("IP/域名", text="IP/域名", anchor="center")result_list.heading("端口", text="端口", anchor="center")result_list.heading("状态", text="状态", anchor="center")# 设置每一列内容居中显示result_list.column("IP/域名", anchor="center")result_list.column("端口", anchor="center")result_list.column("状态", anchor="center")result_list.grid(row=7, column=0, columnspan=2, padx=10, pady=10)# 添加滚动条scrollbar = ttk.Scrollbar(root, orient="vertical", command=result_list.yview)result_list.configure(yscroll=scrollbar.set)scrollbar.grid(row=7, column=2, sticky="ns")# 计算窗口居中所需的宽度和高度window_width = 620window_height = 400position_right = int(root.winfo_screenwidth() / 2 - window_width / 2)position_down = int(root.winfo_screenheight() / 2 - window_height / 2)# 设置窗口大小和位置root.geometry("{}x{}+{}+{}".format(window_width, window_height, position_right, position_down))# 启动主循环root.mainloop()
相关文章:
结合GPT与Python实现端口检测工具(含多线程)
端口检测器是一个非常实用的网络工具,它主要用于检测服务器或本地计算机上的特定端口是否处于开放状态。通过这个工具,你可以快速识别和诊断网络连接问题,确保关键服务的端口能够正常接收和处理数据。这对于网络管理员和开发者来说是一个不可…...
数字媒体产业发展现状剖析,洞悉数字产业园的创新之举
在当今数字化时代,数字媒体产业发展迅猛,呈现出一片繁荣景象。然而,在这繁荣的背后,数字媒体产业发展现状也存在着诸多挑战与机遇。 数字媒体产业发展现状的一个显著特点是技术的快速更新换代。从虚拟现实(VR…...
PDF文件转换为HTML文件
推荐使用 pdf2htmlEX(因为确实做的比较全) pdf2htmlEX 是一个开源工具,可以将PDF文件转换为HTML文件。你需要先安装pdf2htmlEX工具,并确保它在你的系统路径中可用。(花时间最多就是找包) 安装 pdf2htmlEX …...
简易版PHP软文发稿开源系统
软文发稿系统源码(软文发布系统)基于旧版本的媒介软文项目基础上整理出一套简易版,以满足不同客户群体。虽然是简易版 但麻雀虽小五脏俱全,基本能满足小众群体需求 具体功能如下: 大模块功能: 1、媒体发布 …...
React.createContext 的 多种使用方法 详细实现方案代码
React.createContext 是 React 的上下文 API 的核心方法之一,提供了一种无需通过组件树逐层传递 props 的方式来共享数据。它特别适合于全局状态的管理,比如用户信息、主题设置等。下面我将详细介绍 React.createContext 的多种使用方法,并提…...
计算机网络之IPv4深度解析
一.IP地址 IP地址的组成方式:网络号 主机号 可以这样理解,根据网络号找路由器,根据主机号找连着路由器的主机 早期分类的IP地址 表示如下: 其中,有些特殊的IP地址: 主机号全为0,表示本网…...
TinyGPT-V:微型视觉语言模型【VLM】
AI技术正在不断融入我们的日常生活。人工智能的一个应用包括多模态化,例如将语言与视觉模型相结合。这些视觉语言模型可以应用于视频字幕、语义搜索等任务。 本周,我将重点介绍一种名为 TinyGPT-V(Arxiv | GitHub)的最新视觉语言…...
pytorch自动微分
一、torch.autograd.backward(tensors, grad_tensorsNone, retain_graphNone, create_graphFalse)功能:自动求取梯度 grad_tensors:多梯度权重 # 自动求取梯度 # import torch # w torch.tensor([1.],requires_gradTrue) # x torch.tensor([2.],requir…...
TCP协议为什么是三次握手和四次挥手
1.一次握手&&二次握手 一次握手就能成功的话,也就代表着不需要进行确认,那么万一有恶意的服务器一直发送SYN,而服务器需要维护大量的连接,维护连接又需要成本,那么就很容易引发SYN洪水,导致服务器…...
利用ChatGPT提升学术论文撰写效率:从文献搜集到综述撰写的全面指南
大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥(yida985)交流,多多交流,相互成就,共同进步,为大家带来最酷最有效的智能AI学术科研写作攻略。 本文旨在介绍如何利用AI辅助工具,…...
智能、高效、安全,企业桌面软件管理系统,赋能企业数字化转型!提升工作效率不是梦!
为了在激烈的市场竞争中脱颖而出,实现可持续发展,数字化转型已成为企业不可或缺的战略选择!而在这一过程中,一款智能、高效、安全的企业桌面软件管理系统,如安企神,正逐步成为企业数字化转型的重要驱动力。…...
第N7周:调用Gensim库训练Word2Vec模型
本文为365天深度学习训练营 中的学习记录博客原作者:K同学啊 任务: ●1. 阅读NLP基础知识里Word2vec详解一文,了解并学习Word2vec相关知识 ●2. 创建一个.txt文件存放自定义词汇,防止其被切分 数据集:选择《人民的名义…...
基于Crontab调度,实现Linux下的定时任务执行。
文章目录 引言I 预备知识Crontab的基本组成Crontab的配置文件格式Crontab的配置文件Crontab不可引用环境变量杀死进程命令II Crontab实践案例Crontab工具的使用重启tomcat服务每分钟都打印当前时间到一个文件中30s执行一次III 常见问题并发冗余执行任务&& 和|| 和 ;的区…...
Centos系统中创建定时器完成定时任务
Centos系统中创建定时器完成定时任务 时间不一定能证明很多东西,但是一定能看透很多东西,坚信自己的选择,不动摇,使劲跑,明天会更好。 在 CentOS 上,可以使用 systemd 定时器来创建一个每十秒执行一次的任务…...
WLAN基础知识(1)
WLAN: 无线局域网,无线技术:Wi-Fi、红外、蓝牙等 WLAN设备: 胖AP: 适用于家庭等小型网络,可独立配置,如:家用Wi-Fi路由器 瘦AP: 适用于大中型企业,需要配合AC…...
网络安全实训第三天(文件上传、SQL注入漏洞)
1 文件上传漏洞 准备一句话文件wjr.php.png,进入到更换头像的界面,使用BP拦截选择文件的请求 拦截到请求后将wjr.php.png修改为wjr.php,进行转发 由上图可以查看到上传目录为网站目录下的upload/avator,查看是否上传成功 使用时间戳在线工具…...
Nginx 学习之 配置支持 IPV6 地址
目录 搭建并测试1. 下载 NG 安装包2. 安装编译工具及库文件3. 上传并解压安装包4. 编译5. 安装6. 修改配置7. 启动 NG8. 查看 IP 地址9. 测试 IP 地址9.1. 测试 IPV4 地址9.2. 测试 IPV6 地址 IPV6 测试失败原因1. curl: [globbing] error: bad range specification after pos …...
springboot+伊犁地区游客小助手-小程序—计算机毕业设计源码无偿分享需要私信20888
摘 要 提起伊犁,很多人常说,不去新疆,你就不知道中国有多美,不去伊犁,你就不知道新疆有多美。在这里你可以看到中国最美的景色。如果可可托海海是一个野性和粗犷的战士,那么那拉提一定是一个温柔和玉般的绅…...
提升工作效率的五大神器
在这个信息爆炸、节奏加速的时代,高效工作已经成为了职场人士追求的目标。如何在短时间内完成更多的工作任务,同时保持高质量的输出?答案在于合理利用工具。以下是五个能够显著提升工作效率的软件推荐,它们各自在任务管理、团队协…...
想投资现货黄金?在TMGM开户需要多少钱?
最近,越来越多的人开始关注黄金投资,希望通过黄金来对冲风险、保值增值。而选择一家可靠的交易平台是进行黄金投资的第一步。TMGM作为全球知名的外汇交易商,也为投资者提供了黄金交易服务。那么,在TMGM开户投资黄金,需…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
