HasnainRaza67/Port_scanner
GitHub: HasnainRaza67/Port_scanner
一个使用 Python 构建的多线程 TCP 端口扫描器,用于识别开放端口、检测服务并进行基本的 Banner 抓取。
Stars: 0 | Forks: 0
# 高级端口扫描器 (Python)
一个使用 Python 构建的多线程 TCP 端口扫描器,用于识别开放端口、检测运行中的服务,并执行基本的 Banner 抓取以进行网络分析。
# 概述
本项目通过扫描目标系统的开放端口并识别相关服务,演示了基础的网络和网络安全概念。它使用并发执行来提高性能,并包含了实际侦察中常用的技术。
# 功能
* 多线程端口扫描,执行速度更快
* 自定义端口范围扫描
* 使用 TCP 连接检测开放端口
* 基于常见端口映射的服务识别
* 通过 Banner 抓取进行基本的服务和版本检测
* 超时处理以提高可靠性
# 工作原理
1. 目标解析
使用 DNS 将域名转换为 IP 地址。
2. 端口扫描
尝试与指定范围内的每个端口建立 TCP 连接。
3. 开放端口检测
根据成功的连接识别开放端口。
4. 服务识别
将已知端口映射到常见服务(例如,HTTP,SSH)。
5. Banner 抓取
在可用时从开放端口检索服务信息。
6. 多线程
使用并发线程同时扫描多个端口以获得更好的性能。
# 使用技术
* Python
* `socket` (网络通信)
* `concurrent.futures` (多线程)
# 安装
克隆仓库:
```
git clone https://github.com/HasnainRaza67/Port_scanner.git
cd Port_scanner
```
无需外部依赖。
# 使用方法
运行程序:
```
python port_scanner.py
```
在提示时提供输入:
```
Enter target (IP or domain): scanme.nmap.org
Start port: 20
End port: 100
```
# 示例输出
```
Scanning target: scanme.nmap.org
Port range: 20 - 100
Resolved IP: 45.33.32.156
[OPEN] Port 22 (SSH)
[OPEN] Port 80 (HTTP)
```
# 安全注意事项
* 本工具仅供教育和授权测试目的使用
* 仅扫描您拥有或已获得明确测试权限的系统
* 未经授权的扫描可能是非法和不道德的
# 局限性
* 基本的 Banner 抓取可能并不总是返回数据
* 服务检测仅基于常见的端口映射
* 不执行深度的漏洞扫描
# 未来改进
* 异步扫描以实现更高的性能
* 操作系统和服务指纹识别
* 导出扫描结果 (CSV/JSON)
* 与漏洞数据库集成
* 基于 GUI 的界面
# 作者
Hasnain Raza
网络安全专业学生
# 许可证
本项目是开源的,并在 MIT 许可证下发布。
# 支持
如果您觉得这个项目有用,请考虑在 GitHub 上给它点个 Star。
# 输出

标签:Banner Grabbing, Python, Qt框架, Socket编程, TCP连接, URL发现, 二进制发布, 安全检测, 并发扫描, 开源工具, 插件系统, 教育项目, 数据统计, 无后门, 无线安全, 服务识别, 横幅抓取, 端口扫描, 系统分析, 网络分析, 网络安全, 逆向工具, 隐私保护