MonikaKS545/python-port-scanner
GitHub: MonikaKS545/python-port-scanner
一个基于 Python Socket 模块的轻量级 TCP 端口扫描器,帮助初学者理解网络编程基础并快速探测目标主机的开放端口。
Stars: 0 | Forks: 0
# Python 端口扫描器
一个基于 Python 的简单 TCP 端口扫描器,可扫描目标 IP 地址或域名在用户指定端口范围内的开放端口。
本项目是我学习道德黑客(Ethical Hacking)之旅的一部分,旨在加深对网络、socket 和 Python 编程的理解。
## 功能
- 扫描任何有效的 IP 地址或域名
- 用户自定义端口范围
- 检测常见服务(SSH、HTTP、FTP 等)
- 显示开放端口总数
- 测量扫描完成时间
- 将扫描结果保存到文本文件
- 处理无效输入和 DNS 解析错误
- 优雅地处理键盘中断
## 使用技术
- Python 3
- Socket 模块
- Time 模块
- Datetime 模块
- Git
- GitHub
## 项目结构
```
python-port-scanner/
│
├── port_scanner.py
├── README.md
├── .gitignore
├── LICENSE
└── scan_results.txt (generated after running)
```
## 如何运行
1. 克隆仓库
```
git clone https://github.com/MonikaKS545/python-port-scanner.git
```
2. 打开项目文件夹
3. 运行
```
python port_scanner.py
```
4. 输入:
- 目标 IP 或域名
- 起始端口
- 结束端口
## 示例输出
```
=== Python Port Scanner ===
Enter IP address or domain: scanme.nmap.org
Enter Start Port: 20
Enter End Port: 100
Scanning scanme.nmap.org (45.33.32.156)
Scanning ports 20 to 100
Port 22 (SSH) is OPEN
Port 80 (HTTP) is OPEN
Open ports found: 2
Scan completed in 40.62 seconds
Results saved to scan_results.txt
```
## 我的收获
- Python socket 编程
- TCP 端口扫描
- DNS 解析
- 异常处理
- 文件处理
- Git 版本控制
- GitHub 工作流
- 基础网络概念
## 未来改进
- 使用多线程加快扫描速度
- Banner grabbing
- 服务版本检测
- 命令行参数
- GUI 版本
- 导出 CSV 格式的结果
## 作者
**MonikaKS545**
标签:Python, Socket编程, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全, 网络安全研究, 网络编程, 隐私保护