Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NetScan

局域网 IP 段网络扫描器:发现在线主机 → 扫描开放端口与服务 → 解析设备 MAC 地址。

功能

  • 阶段1 ICMP Ping 扫描,找出在线主机
  • 阶段2 扫描在线主机的开放端口,并识别服务类型
    • 预置端口直接用表内服务名,不重复嗅探
    • 非预置端口做分层嗅探(读 banner → HTTP GET → TLS 识别 → banner 特征库)
  • 阶段3 解析在线主机的 MAC 地址(基于系统 ARP 表)
  • 控制台输出扫描结果

项目结构

NetScan/
├── cmd/
│   └── netScan/          # 入口:配置、交互输入、流程编排
├── internal/
│   ├── scanner/          # 引擎:Ping、端口扫描、服务嗅探、设备信息
│   └── report/           # 展示:表格、进度
├── go.mod
└── README.md

构建

go build -o NetScan.exe ./cmd/netScan

使用

./NetScan.exe

或直接运行:go run ./cmd/NetScan

按提示输入:

  • 起始 IP / 结束 IP(可指定任意网段)
  • 端口:逗号分隔,支持范围,如 22,80,443,8080-8090留空则使用预置表

示例:

请输入起始IP地址 (默认: 192.168.2.1): 192.168.2.1
请输入结束IP地址 (默认: 192.168.2.254): 192.168.2.254
请输入端口 (逗号分隔, 留空用预置表) (默认: ): 22,80,8080-8090

预置端口表

用户留空端口时扫描以下常见端口;命中预置表的端口直接用表内服务名标注,不再主动嗅探。

端口 服务 端口 服务 端口 服务
21 FTP 25 SMTP 53★ DNS
22 SSH 80 HTTP 110 POP3
111 rpcbind 123★ NTP 135 MSRPC
137★ NetBIOS-NS 139 NetBIOS-SSN 143 IMAP
161★ SNMP 1900★ SSDP 389 LDAP
443 HTTPS 445 SMB 465 SMTPS
587 SMTP-Sub 631 IPP 636 LDAPS
873 rsync 993 IMAPS 995 POP3S
1080 SOCKS 1433 MSSQL 1521 Oracle
1723 PPTP 2049 NFS 2181 ZooKeeper
2375 Docker 2379 etcd 3000 Grafana
3306 MySQL 3389 RDP 5432 PostgreSQL
5672 RabbitMQ 5900 VNC 5985 WinRM
5986 WinRM-S 6379 Redis 6443 K8s-API
7001 WebLogic 8080 HTTP 8081 HTTP
8086 InfluxDB 8443 HTTPS 8888 HTTP
9000 HTTP 9090 Prometheus 9092 Kafka
9200 Elasticsearch 11211 Memcached 1883 MQTT
27017 MongoDB

★ 为 UDP 端口,用专用探测包(DNS 查询 / NTP 版本 / NetBIOS 状态 / SNMP GET / SSDP M-SEARCH),收到回包判为开放。

输出

  • 在线主机列表
  • 开放端口汇总(IP / 端口 / 协议 / 服务)—— 首要关注
  • 设备信息(IP / MAC)—— 次要
  • 扫描统计与耗时

说明

  • 仅适用于 Windows(Ping / arp -a 命令语法);纯 Go 实现,无第三方依赖
  • 网络探测请仅在自有网络或已获授权的环境下进行

About

局域网 IP 段网络扫描器

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages