arthhKumar/automated-tcp-port-scanner

GitHub: arthhKumar/automated-tcp-port-scanner

一个基于 Python socket 库实现的轻量级 TCP 端口扫描工具,帮助用户掌握网络侦察基础知识并快速探测目标端口开放状态。

Stars: 0 | Forks: 0

# 自动化 TCP 端口扫描器 ## 📌 项目概述 这是一个使用核心 `socket` 库从头开始使用 Python 构建的轻量级网络侦察工具。该应用程序允许用户输入目标域名或 IPv4 地址以及自定义端口范围,自动映射出哪些网络网关正在主动监听连接。 我构建这个项目是为了在转向高级网络安全框架之前,掌握网络通信、socket 逻辑和错误处理的底层基础知识。 ## 🛡️ 网络安全背景:侦察阶段 在专业的安全运营中,端口扫描器是**信息收集(侦察)阶段**使用的基本工具。在分析师修补网络之前——或者在审计开始之前——他们必须对目标系统进行映射。 发现**开放端口**可以准确告诉安全专业人员机器上正在运行哪些软件服务。通过映射这些网关,我们可以发现未经授权的入口点或需要立即修复的过时、易受攻击的服务。 ## ⚙️ 引擎工作原理(TCP 3 次握手) 核心架构依赖于使用标准 **TCP Connect 扫描**的顺序执行循环。在检查端口时,脚本会启动标准网络握手: 1. **SYN(同步):** 脚本通过 `socket.connect_ex()` 向目标 IP 和端口发送连接请求 packet。 2. **SYN-ACK(确认):** 如果网关**开放**,目标机器会做出积极回复。内部函数会拦截此回复,记录成功代码(`0`),并将端口状态输出到控制台。 3. **RST(重置):** 如果网关**关闭**,目标会回复一个重置 packet。该函数会记录错误代码并干净地跳过该端口。 ## 🛠️ 核心功能与逻辑 * **动态主机名解析:** 利用 `socket.gethostbyname()` 将标准的字母数字 Web 域名(例如 `google.com`)无缝映射为原始数字 IPv4 地址。 * **范围优化功能:** 实现用户定义的范围输入机制,允许对特定子集(例如,标准 Web 端口 80 到 443)进行定向扫描,而不是强制缓慢扫描所有 65,535 个通道。 * **容错异常处理:** * 实现严格的 `s.settimeout(1.0)` 阈值以绕过静默丢弃 packet 的防火墙,防止应用程序挂起。 * 捕获无效域名(`socket.gaierror`)和非整数输入(`ValueError`),以便在不导致系统崩溃的情况下优雅退出。 * 具备 `KeyboardInterrupt` 拦截功能,允许干净的手动终止(`Ctrl + C`)。 ## 🚀 快速开始 ### 前置条件 * 宿主机上已安装 Python 3.x。 ### 执行说明 1. 克隆此仓库或下载源脚本。 2. 在项目文件夹中打开你的终端/命令提示符并执行: python port_scanner.py
标签:Python, Socket编程, TCP端口扫描, 插件系统, 无后门, 网络工具, 逆向工具