LeandroCastilhoSilva/Port-Scanner

GitHub: LeandroCastilhoSilva/Port-Scanner

一个纯 Python 实现的 TCP 端口扫描器,支持多线程并发扫描并通过 banner grabbing 识别端口服务及版本信息。

Stars: 0 | Forks: 0

# 端口扫描器 一个用 Python 编写的 TCP 端口扫描器。它会测试计算机(IP 或域名),并告诉你哪些端口是开放的、端口上可能运行着什么服务,有时甚至能获取到程序版本。 我做这个项目是为了在实践中学习简单的网络扫描器是如何工作的。 ## 重要警告 请仅在你自己拥有或被授权测试的计算机和网络上使用此程序。未经授权扫描他人的端口在某些国家可能构成犯罪。 ## 功能 - 测试单个端口或一个端口范围(例如:20 到 1024) - 同时测试多个端口,因此速度很快 - 显示每个端口最常见的服务名称(例如:端口 22 = SSH) - 尝试读取服务的响应,这有时能获取到正在运行的程序版本 ## 环境要求 - Python 3.10 或更高版本 无需安装任何额外的库,仅使用纯 Python。 ## 使用方法 首先,进入 `src` 目录: ``` cd src ``` ### 测试单个端口 ``` python3 scanner.py 127.0.0.1 -p 22 ``` 这会测试你本机的 22 端口。 ### 同时测试多个端口 ``` python3 scanner.py 127.0.0.1 -p 1-1000 ``` 这会测试 1 到 1000 端口。 ### 测试网络中的其他计算机 ``` python3 scanner.py 192.168.1.10 -p 1-1000 ``` 将 `192.168.1.10` 替换为你要测试的计算机的 IP(前提是它是你自己的或已获授权)。 ## 可用选项 | 选项 | 功能 | 默认值 | |---|---|---| | `target` | 计算机的 IP 或名称(必填) | - | | `-p` 或 `--ports` | 单个端口或范围,例如:`22` 或 `1-1000` | 22 | | `-t` 或 `--threads` | 同时测试多少个端口 | 50 | | `--timeout` | 每个端口的等待超时时间,以秒为单位 | 1.0 | 使用所有选项的示例: ``` python3 scanner.py 127.0.0.1 -p 1-500 -t 100 --timeout 0.5 ``` ## 我在这个项目中学到了什么 - Python 中使用 sockets 的 TCP 连接是如何工作的 - 如何使用 threads 同时运行多个任务,以使程序运行更快 - 如何识别在端口上运行的服务(banner grabbing) - 如何将严重错误(会终止程序)与小错误(仅发出警告并继续执行)区分开来
标签:Python, Scrypt密钥派生, TCP, 插件系统, 数据统计, 无后门, 服务指纹识别, 端口扫描, 网络安全, 网络工具, 逆向工具, 隐私保护