rb410161-lgtm/Port-Scanner
GitHub: rb410161-lgtm/Port-Scanner
一个面向初学者的 Python TCP 端口扫描器,能够探测常见开放端口、识别运行服务并抓取 Banner 信息,帮助学习者掌握网络安全侦察的基础原理。
Stars: 0 | Forks: 0
# Python 端口扫描器
一个使用 Python 和 Socket 编程构建的适合初学者的 TCP 端口扫描器。
本项目扫描目标机器上的常见端口,识别开放端口,检测常见服务,并执行基本的 Banner 抓取,适用于教育和网络安全学习目的。
# 功能
- TCP 端口扫描
- 服务检测
- Banner 抓取
- 超时处理
- 错误处理
- 适合初学者的代码结构
# 使用技术
- Python 3
- Socket 编程
# 扫描端口
| 端口 | 服务 |
|------|----------|
| 21 | FTP |
| 22 | SSH |
| 23 | TELNET |
| 25 | SMTP |
| 53 | DNS |
| 80 | HTTP |
| 110 | POP3 |
| 139 | NETBIOS |
| 143 | IMAP |
| 443 | HTTPS |
| 445 | SMB |
| 3306 | MySQL |
| 3389 | RDP |
| 8080 | HTTP-ALT |
# 工作原理
扫描器:
1. 从用户处获取目标 IP 地址
2. 遍历预定义的端口
3. 使用 Python sockets 尝试 TCP 连接
4. 检查端口是开放还是关闭
5. 识别在开放端口上运行的常见服务
6. 尝试基本的 Banner 抓取以获取服务信息
# 安装说明
克隆仓库:
```
git clone https://github.com/YOUR_USERNAME/python-port-scanner.git
```
进入项目文件夹:
```
cd python-port-scanner
```
# 使用说明
运行扫描器:
```
python3 scanner.py
```
输入目标 IP:
```
Enter Target IP: 192.168.0.105
```
# 示例输出
```
Scanning Target: 192.168.0.105
--------------------------------------------------
[+] Port 22 OPEN
Service: SSH
Banner: SSH-2.0-OpenSSH_8.2p1 Ubuntu
[+] Port 80 OPEN
Service: HTTP
Banner: Apache/2.4.41 (Ubuntu)
Scan Completed.
```
# 学习目标
本项目帮助初学者理解:
- Python 基础
- Socket 编程
- TCP 网络
- 端口扫描概念
- Banner 抓取
- 网络安全自动化
- 服务枚举
- 错误处理
# 免责声明
此工具创建用于:
- 教育目的
- 个人实验室
- 仅限授权的安全测试
请勿在未经许可的情况下扫描系统。
# 未来改进
- 多线程扫描
- 全端口范围扫描
- 操作系统检测
- UDP 扫描
- 服务版本检测
- GUI 界面
- 导出扫描报告
# 作者
作为使用 Python 的网络安全学习项目创建。
标签:GraphQL安全矩阵, Python, Python 3, Socket编程, TCP协议, Windows内核, 二进制发布, 协议分析, 安全扫描器, 局域网扫描, 开源工具, 插件系统, 数据统计, 新手友好, 无后门, 服务器安全, 服务枚举, 本地模型, 权限提升, 横幅抓取, 白帽子, 端口扫描, 网络安全, 脚本编程, 隐私保护, 黑客技术