项目简介
本项目是基于Go语言和gopacket库开发的TCP半连接端口扫描程序,是2021 - 2022学年冬季学期《计算机安全与保密技术》的项目成果。它可扫描指定IP地址或域名下的端口,支持指定端口范围进行扫描,能快速准确检测开放端口。
项目的主要特性和功能
- 命令行参数灵活配置,支持指定IP地址、域名和端口范围。
- 自动化网络接口处理,自动获取本地主机的出站IP地址、匹配的网络接口设备及其MAC地址。
- 采用高效的SYN扫描(TCP半连接扫描)方式,通过发送SYN数据包并监听响应判断端口是否开放。
- 利用Golang的goroutine实现发送和监听功能的并发执行,减少扫描时间。
- 在监听过程中,通过过滤算法筛选目标端口的响应数据,避免无用信息干扰。
安装使用步骤
安装依赖
- 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】