psajja3302/Nmap-Port-Scanner

GitHub: psajja3302/Nmap-Port-Scanner

一个基于 python-nmap 模块构建的命令行端口扫描工具,支持多线程并发和服务版本检测,用于快速扫描指定 IP 的端口开放状态。

Stars: 0 | Forks: 0

# Nmap 端口扫描器 ## 法律免责声明 **本工具仅供教育目的和授权的网络扫描使用。** 在大多数司法管辖区,未经明确许可扫描网络或系统是**非法且不道德的**。在扫描任何非您个人拥有的网络或主机之前,请务必确保您已获得书面授权。 了解更多:[https://nmap.org/book/legal-issues.html](https://nmap.org/book/legal-issues.html) ## 功能 - 扫描用户指定的 IP 地址和端口范围 - 多线程扫描(400 个线程)以实现快速获取结果 - 通过 `-sV` 进行服务和版本检测 - 过滤输出:仅显示开放端口,或显示所有端口 - 使用正则表达式验证 IP 地址格式 - 验证端口范围(0–65535) - 简洁的、nmap 风格的格式化输出 ## 环境要求 - macOS(已测试)或 Kali Linux - Python 3.x - [Homebrew](https://brew.sh)(仅限 macOS) - `nmap` 二进制文件 - `python-nmap` Python 模块 ## 安装与设置 ### 步骤 1 — 安装 nmap 二进制文件 在 **macOS** 上,使用 Homebrew: ``` brew install nmap ``` 在 **Kali Linux** 上,nmap 已预装。要验证是否已安装: ``` nmap --version ``` ### 步骤 2 — 在 VSCode 中设置 Python 虚拟环境 强烈建议使用虚拟环境,以便为每个项目隔离依赖项。同样的过程也可以在 Kali 上完成。 在 VSCode 中打开您的项目文件夹,然后打开集成终端(`Ctrl + `` ` ``)并运行: ``` # 创建虚拟环境 python3 -m venv .venv # 激活它(你会看到 (.venv) 出现在终端提示符中) source .venv/bin/activate ``` ### 步骤 3 — 安装 python-nmap 模块 在激活您的虚拟环境后: ``` pip install python-nmap ``` ### 步骤 4 — 在 VSCode 中选择正确的解释器 VSCode 需要知道使用哪个 Python 解释器,以便它能解析 `nmap` 模块: 1. 在您的终端中(在 `.venv` 激活状态下),运行: which python3 这将输出类似于以下内容: /Users/yourname/PythonProjects/NmapScanner/.venv/bin/python3 2. 打开命令面板:`Cmd + Shift + P` 3. 搜索 **"Python: Select Interpreter"** 4. 点击 **"Enter interpreter path..."** 5. 粘贴步骤 1 中的路径 ## 用法 在您的终端中运行扫描器: ``` python3 nmap_portscanner.py ``` 系统将提示您输入: 1. **目标 IP 地址** — 例如 `192.168.1.10` 2. **端口范围** — 例如 `20-80` 3. **显示模式** — `1` 表示仅显示开放端口,`2` 表示显示所有端口 ### 示例输出(目标 IP:192.168.1.10 | 端口范围:20-30 | 显示模式:1) ``` Scanning ports 20 – 30 on 192.168.1.10... PORT STATE PROTOCOL SERVICE PRODUCT & VERSION ---------------------------------------------------------------------- 21 open tcp ftp vsftpd 2.3.4 22 open tcp ssh OpenSSH 4.7p1 23 open tcp telnet N/A Scan complete. 3 open port(s) found. ```
标签:CTI, Nmap, Python, 云存储安全, 插件系统, 数据统计, 无后门, 端口扫描, 网络扫描, 虚拟驱动器, 逆向工具