littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于Go语言的TCP半连接端口扫描程序

项目简介

本项目是基于Go语言和gopacket库开发的TCP半连接端口扫描程序,是2021 - 2022学年冬季学期《计算机安全与保密技术》的项目成果。它可扫描指定IP地址或域名下的端口,支持指定端口范围进行扫描,能快速准确检测开放端口。

项目的主要特性和功能

  1. 命令行参数灵活配置,支持指定IP地址、域名和端口范围。
  2. 自动化网络接口处理,自动获取本地主机的出站IP地址、匹配的网络接口设备及其MAC地址。
  3. 采用高效的SYN扫描(TCP半连接扫描)方式,通过发送SYN数据包并监听响应判断端口是否开放。
  4. 利用Golang的goroutine实现发送和监听功能的并发执行,减少扫描时间。
  5. 在监听过程中,通过过滤算法筛选目标端口的响应数据,避免无用信息干扰。

安装使用步骤

安装依赖

  • Linux:使用对应版本的包管理器安装 libpcap,如 apt-get install libpcap-dev
  • OSX:brew install libpcap
  • Windows:请安装 WinPcap

编译项目

在已下载的项目源码文件目录下,打开命令行终端,执行以下命令编译成可执行文件: shell go build

执行扫描

shell ./scanit [options] [target] 注:Linux操作系统可能需要以管理员权限执行(sudo)来获取本机主机的网络接口。

指令选项

  • 指定ip地址:-i [ip address]--ipaddr [ip address],扫描指定ip地址中的所有端口,ip address 允许以ipv4和ipv6格式输入。 shell ./scanit -i 192.168.0.1
  • 指定域名:-d [domain name]--domain [domain name],扫描指定域名下的所有端口。 shell ./scanit -d baidu.com 若同时输入 -i-d 选项,程序将默认优先识别 -d,如果域名不合法才会尝试 -i
  • 指定端口范围:-p [port range]--port [port range],扫描指定范围内的端口,默认为 1 - 65535。[port range] 的语法格式为 int-int,如 114-514

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】