vaishnu-18/Python-Port-Scanner

GitHub: vaishnu-18/Python-Port-Scanner

一个轻量级多线程TCP端口扫描工具,支持速率限制和JSON输出,适合快速发现目标主机开放端口。

Stars: 0 | Forks: 0

# Python 端口扫描器 一个多线程的 **TCP 端口扫描器(使用 Python 编写)**,可扫描目标主机上的端口,支持配置并发数和速率限制。 该扫描器会验证输入、并发扫描端口,并将结果**输出到控制台和 JSON 文件**。 主入口点是 `portscanner.py`,它负责解析 CLI 参数、验证输入、执行扫描并存储结果。 # 功能特性 - 多线程端口扫描 - 全局连接尝试速率限制 - 输入验证,包括: - IP 地址 - 端口 - 端口范围 - 输出文件名 - 简洁的控制台输出,显示常见服务名称 - 扫描结果导出为 JSON - 日志支持 # 项目结构 ``` Python-Port-Scanner │ ├── portscanner.py # Main CLI entry point │ ├── functions │ ├── scan_iterator.py # Multithreaded scanning logic │ ├── socket_connection.py# TCP connection to a port │ ├── write_to_console.py # Console output formatting │ ├── store_to_file.py # Save results to JSON │ ├── validate_input.py # Input validation utilities │ └── take_input.py # Interactive input (optional/testing) │ └── README.md ``` # 安装说明 克隆仓库: ``` git clone https://github.com/vaishnu-18/python-port-scanner.git cd python-port-scanner ``` 无需外部依赖。 推荐的 Python 版本: ``` Python 3.10+ ``` # 用法 使用 CLI 运行扫描器。 ### 基本扫描 ``` python portscanner.py -t 192.168.1.1 -p 80 ``` ### 扫描端口范围 ``` python portscanner.py -t 192.168.1.1 -p 20-100 ``` # CLI 参数 | 参数 | 描述 | 默认值 | |--------|--------|--------| | `-t`, `--target` | 目标 IPv4 地址 | 必需 | | `-p`, `--ports` | 端口或端口范围 | 必需 | | `-th`, `--threads` | 最大线程数 | 100 | | `-r`, `--rate` | 每秒最大连接数 | 100 | | `-ti`, `--timeout` | Socket 超时时间(秒) | 1.0 | | `-o`, `--output` | 输出 JSON 文件 | scan_results.json | 示例: ``` python portscanner.py \ -t 192.168.1.1 \ -p 1-1024 \ -th 200 \ -r 300 \ -ti 0.5 \ -o results.json ``` # 示例输出 控制台输出: ``` Scan Results ------------------------------------------------------------ IP PORT STATUS COMMON PORT ------------------------------------------------------------ 192.168.1.1 22 OPEN SSH 192.168.1.1 80 OPEN HTTP 192.168.1.1 443 CLOSED HTTPS ``` JSON 输出: ``` [ { "ip": "192.168.1.1", "port": 22, "status": "OPEN" } ] ``` # 日志 日志默认以 **INFO 级别** 启用。 示例: ``` INFO - Starting port scan on 192.168.1.1 ports 20-100 INFO - Port scan finished in 0.52 seconds ``` # 限制 - 仅支持 IPv4 - 仅支持 TCP 连接扫描 - 无服务检测或 Banner 抓取 - 无 UDP 扫描 # 教学目的 本项目演示了: - socket 编程 - 使用 `ThreadPoolExecutor` 实现并发 - 速率限制 - 输入验证 - 模块化项目结构 # 许可证 MIT License
标签:API密钥检测, DNS枚举, DNS查询工具, Homebrew安装, JSON导出, Python, Python 3, Socket编程, TCP扫描, URL短链接分析, 密码管理, 情报分析, 插件系统, 文档结构分析, 无后门, 服务探测, 端口扫描器, 网络安全工具, 网络诊断, 输入验证, 逆向工具