khanzajir1212-netizen/portScannerLite.js

GitHub: khanzajir1212-netizen/portScannerLite.js

一个基于 Node.js 的轻量级 TCP 端口扫描器,通过异步检测常见服务端口的开放状态来演示网络侦察基础知识。

Stars: 0 | Forks: 0

# portScannerLite.js portScannerLite.js 一个轻量级的 TCP 端口扫描器,它异步检查目标主机的常见开放端口(FTP、SSH、Telnet、SMTP、DNS、HTTP、HTTPS、RDP)。它使用 Node 内置的 net 模块结合 socket 超时来确定端口状态,演示了网络侦察的基础知识。仅供授权测试使用。 // portScannerLite.js // 检查目标主机上的常见 TCP 端口是否开放。 // 仅供教育用途 — 请仅扫描您拥有或获得测试权限的主机。 const net = require("net"); const COMMON_PORTS = { 21: "FTP", 22: "SSH", 23: "Telnet", 25: "SMTP", 53: "DNS", 80: "HTTP", 443: "HTTPS", 3389: "RDP", }; function checkPort(host, port, timeout = 1000) { return new Promise((resolve) => { const socket = new net.Socket(); socket.setTimeout(timeout); ``` socket.on("connect", () => { socket.destroy(); resolve({ port, open: true }); }); socket.on("timeout", () => { socket.destroy(); resolve({ port, open: false }); }); socket.on("error", () => { resolve({ port, open: false }); }); socket.connect(port, host); ``` }); } async function scan(host) { console.log(`正在扫描 ${host}...\n`); const results = await Promise.all( Object.keys(COMMON_PORTS).map((p) => checkPort(host, parseInt(p))) ); results.forEach(({ port, open }) => { const status = open ? "开放" : "关闭"; console.log(`端口 ${port} (${COMMON_PORTS[port]}): ${status}`); }); } const target = process.argv[2]; if (!target) { console.log("用法: node portScannerLite.js "); console.log("示例: node portScannerLite.js scanme.nmap.org"); } else { scan(target); }
标签:GNU通用公共许可证, MITM代理, Node.js, TCP/IP, 异步编程, 插件系统, 数据可视化, 数据统计, 端口扫描, 网络工具