Lyra-dev6/port-scanner-python
GitHub: Lyra-dev6/port-scanner-python
一款基于 Python Socket 的入门级命令行端口扫描工具,通过自动解析域名并循环探测端口开放状态,帮助用户理解网络通信与基础安全侦察原理。
Stars: 0 | Forks: 0
# 端口扫描器
一款本地 Python 网络安全脚本,旨在扫描网址或 IP 地址以查找开放端口(“数字大门”)。这是我编程旅程中的第 5 个项目。
### 概述
作为我的第五个项目——也是我第一个专注于网络安全和网络通信的项目——这个脚本源于我对进攻性安全和顶尖红队技术的热情。虽然我之前的项目(文件整理器)专注于管理我电脑的文件系统,但这个应用程序深入到了网络通信和 sockets 领域。我的主要目标是构建一个实用的工具,模拟道德黑客攻击(授权黑客攻击)最初的“侦察阶段”,以查找目标服务器上运行的可访问服务。
### 如何使用它
由于此脚本在您的计算机上本地运行,请按照以下简单步骤安全地进行测试:
**步骤 1:保存代码**
- 确保您将脚本在 VS Code 中保存为 `main.py` 或 `scanner.py`。
**步骤 2:运行脚本**
- 打开您的终端或 VS Code PowerShell。
- 输入以下命令运行脚本:`python main.py`
**步骤 3:输入目标主机**
- 终端会提示您一条消息:`Enter the target website or IP: `
- 输入一个合法的测试地址(如 `scanme.nmap.org`)并按 Enter 键。
- 观察实时终端日志,它会在逐一检查时显示开放的端口!
### 功能
- **动态地址转换:** 自动将可读的网址(如 `scanme.nmap.org`)转换为计算机使用的精确数字 IP 地址。
- **自动化端口循环:** 利用循环系统地扫描特定范围的标准操作端口(从端口 20 到 85),无需为每个端口手动输入。
- **防崩溃扫描:** 使用专门的错误处理来检查连接是成功还是失败,确保脚本平稳运行,而不是在遇到关闭的端口时崩溃。
- **自定义终端 UI:** 使用字符串格式化生成简洁、专业的命令行横幅,使扫描目标易于阅读。
### 我学到了什么
- **Python Socket 模块:** 学习如何使用内置的 `socket` 库来建立网络连接,并通过互联网与外部服务器通信。
- **Sockets 的概念:** 理解 socket 就像一条数字电话线,必须创建它,用它去“敲击”端口,然后使用 `.close()` 正确挂断。
- **错误编码(`connect_ex`):** 弄清楚 `connect_ex` 的底层工作原理,它在成功建立开放连接时返回标准错误代码 `0`,而不是抛出巨大的红色错误消息。
- **网络超时:** 设置自定义的 `.settimeout(1.0)` 限制,这样脚本就不会在等待受保护或无响应服务器的响应时无限挂起。
- **字符串乘法:** 使用巧妙的 Python 技巧,如 `"=" * 40`,快速生成终端边界,而无需手动输入。
### 状态
- 已完成
标签:Python, Subfinder, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全, 网络编程, 逆向工具, 隐私保护