agoc812/Network-Scanner-Tool

GitHub: agoc812/Network-Scanner-Tool

基于Python的多线程TCP端口扫描器,用于网络安全审计和系统管理。

Stars: 0 | Forks: 0

# 🔍 网络发现与审计工具 [![Python 版本](https://img.shields.io/badge/python-3.6+-blue.svg)](https://www.python.org/downloads/) [![平台](https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20Mac-lightgrey.svg)](https://github.com) [![许可证](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![状态](https://img.shields.io/badge/status-production-brightgreen.svg)](https://github.com) 一个适用于生产的、基于 Python 的 **多线程 TCP 端口扫描器**,用于网络安全审计和系统管理。此工具旨在进行内部网络侦察、漏洞评估准备和学习网络编程概念。 ## 📋 目录 - [功能](#-features) - [技术规格](#-technical-specifications) - [安装](#-installation) - [快速入门](#-quick-start) - [使用指南](#-usage-guide) - [示例输出](#-sample-output) - [项目结构](#-project-structure) - [技术深入](#-technical-deep-dive) - [免责声明](#-disclaimer) ## 🚀 功能 | 功能 | 描述 | |---------|-------------| | **⚡ 高性能** | 多线程架构每秒扫描数百个端口 | | **🌐 子网支持** | 使用 CIDR 表示法(例如,192.168.1.0/24)扫描整个网络 | | **🎯 灵活的端口选择** | 单个端口、逗号分隔的列表、范围或预定义的常用端口 | | **🔄 智能主机发现** | 在深度扫描之前快速识别活动主机以节省时间 | | **📊 实时进度** | 带有百分比和经过时间的实时进度跟踪 | | **💾 导出结果** | 将扫描结果保存到文本文件以供文档使用 | | **🎨 专业 CLI** | 清洁的命令行界面,带有 argparse | | **🛡️ 优雅处理** | Ctrl+C 中断、超时管理、全面的错误恢复 | | **🔍 服务检测** | 识别开放端口的常用服务名称 | | **📝 详细模式** | 详细输出,用于调试和学习 | ## 📊 技术规格 | 方面 | 详细信息 | |--------|--------| | **语言** | Python 3.6+ | | **依赖项** | 无(仅使用 Python 标准库) | | **并发模型** | ThreadPoolExecutor,具有可配置的线程池 | | **协议** | TCP 连接扫描(完整握手) | | **端口范围** | 1-65535(完全可配置) | | **超时默认值** | 1.0 秒(可调整) | | **线程默认值** | 100 个并发线程(可调整) | ## 💻 安装 ### 先决条件 - 系统上已安装 Python 3.6 或更高版本 - 无需额外包! - ### 第 1 步:克隆仓库 ``` # 使用 HTTPS 克隆 git clone https://github.com/agoc812/Network-Scanner-Project.git # 或使用 SSH 克隆 git clone git@github.com:agoc812/Network-Scanner-Project.git # 进入项目目录 cd Network-Scanner-Project ``` ### 第 2 步:验证 Python 安装 ``` # 检查 Python 版本(应为 3.6+) python --version # 或在某些系统上 python3 --version ``` ### 第 3 步:制作可执行文件(Linux/Mac) ``` # 添加执行权限 chmod +x scanner.py ``` ### 第 4 步:测试扫描器 ``` # 在本地主机上进行快速测试 python scanner.py -t 127.0.0.1 -p 80,443 ``` ## 快速入门 ### 基本扫描 ``` # 使用默认端口(1-1024)扫描本地主机 python scanner.py -t 127.0.0.1 # 使用自定义端口扫描特定主机 python scanner.py -t 192.168.1.1 -p 22,80,443 # 扫描子网 python scanner.py -t 192.168.1.0/24 -p common ``` ### 性能扫描 ``` # 使用更多线程进行快速扫描 python scanner.py -t 192.168.1.1 -p 1-1000 -T 200 # 将结果保存到文件 python scanner.py -t 192.168.1.0/24 -p 1-1024 --output network_audit.txt ``` ## 使用指南 ``` python scanner.py -t [OPTIONS] ``` ### 基本示例 ``` 1. Scan Single Host python scanner.py -t 192.168.1.1 2. Scan Specific Ports python scanner.py -t 192.168.1.1 -p 22,80,443,3306,8080 3. Scan Port Range python scanner.py -t 192.168.1.1 -p 1-5000 4. Scan Entire Subnet python scanner.py -t 192.168.1.0/24 -p 80,443 5. Scan with Hostname python scanner.py -t google.com -p 80,443 6. Full Network Audit python scanner.py -t 10.0.0.0/24 -p 1-1024 -T 200 --output full_audit.txt 7. Quick Service Discovery python scanner.py -t 192.168.1.1 -p common -T 150 -tmo 0.5 8. Verbose Debug Mode python scanner.py -t 127.0.0.1 -p 1-100 -v 9. Subnet Scan Without Discovery python scanner.py -t 192.168.1.0/24 -p 22 --no-discovery ``` ### 示例输出 ``` ============================================================ Network Discovery & Auditing Tool Multi-threaded TCP Port Scanner Started: 2026-05-03 14:30:25 ============================================================ [*] Target: 192.168.1.100 [*] Timeout: 1.0s [*] Max Threads: 100 [*] Ports to scan: 1024 ports [*] Starting multi-threaded scan on 192.168.1.100 [*] Scanning 1024 ports with 100 threads... [*] Progress: 100.0% (1024/1024) | Time: 2.3s | Open: 5 [+] Scan completed in 2.35 seconds ============================================================ SCAN RESULTS ============================================================ Target: 192.168.1.100 (192.168.1.100) [+] Open ports found: 5 ---------------------------------------- 22/tcp - ssh 80/tcp - http 443/tcp - https 3306/tcp - mysql 8080/tcp - http-alt [*] Scan finished ``` ### 项目结构 Network-Scanner-Project/ │ ├── scanner.py # 主应用程序源代码(500+ 行) ├── README.md # 此文档文件 ├── requirements.txt # 依赖项(无需依赖项 - 仅标准库) │ └── .gitignore # Python 特定的 git 忽略规则 ### 技术深入 用户命令 │ ▼ ┌─────────────────────────────────────────────────────────┐ │ 1. 解析 CLI 参数(argparse) │ │ - 提取目标、端口、线程、超时 │ └─────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ 2. 解析端口字符串 │ │ "1-1000" → [1,2,3,...,1000] │ │ "22,80,443" → [22,80,443] │ └─────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ 3. 确定扫描类型 │ │ ┌──────────────┐ ┌──────────────────────┐ │ │ │ 单个主机? │ │ 子网(CIDR)? │ │ │ │ 192.168.1.1 │ │ 192.168.1.0/24 │ │ │ └──────────────┘ └──────────────────────┘ │ └─────────────────────────────────────────────────────────┘ │ │ ▼ ▼ ┌──────────────────┐ ┌──────────────────────────────┐ │ 直接扫描 │ │ 子网扫描 │ │ │ │ 1. 生成所有主机 IP │ │ 线程池 │ │ 2. 发现活动主机 │ │ (100 工作者) │ │ 3. 扫描每个活动主机 │ └──────────────────┘ └──────────────────────────────┘ │ │ └────────────┬─────────────┘ ▼ ┌─────────────────────────────────────────────────────────┐ │ 对于每个端口:socket.connect_ex((ip, port)) │ │ 返回 0 → 打开 │ │ 返回其他 → 关闭/过滤 │ └─────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ 收集结果并向用户显示 │ └─────────────────────────────────────────────────────────┘ ### 免责声明 重要 - 请仔细阅读 此工具旨在用于教育目的和授权的网络审计。 ## 合法使用: ✅ 扫描您自己的系统和网络 ✅ 扫描您有权测试的系统 ✅ 您组织内的内部安全审计 ✅ 在受控环境中进行的教育练习 ## 非法使用: ❌ 未授权扫描网络 ❌ 将此工具用于恶意目的 ❌ 尝试绕过安全控制 ❌ 未经授权访问计算机系统 ## 合规性: 用户有责任遵守所有适用的法律和法规,包括: 美国计算机欺诈和滥用法案(CFAA) 英国计算机滥用法 您所在司法区的类似立法 使用此工具表示您拥有适当的授权并接受您行为的所有责任。
标签:AES-256, Awesome, CIDR, Python开发, 云存储安全, 实时进度, 数据统计, 服务检测, 漏洞评估, 生产级工具, 端口扫描, 系统管理, 网络安全, 网络扫描, 网络编程, 逆向工具, 隐私保护