本项目是一个基于 Unix 系统的本地网络抓包与请求日志工具,用于实时监控网络中 HTTP 和 HTTPS 请求。它能够列出抓取到的每个设备的请求信息,并将日志写入文件,同时在终端实时显示。适用于 IT 管理、网络调试和安全审计场景。
- 自动识别网络接口(macOS: en0,Linux: eth0)或自定义接口
- 实时抓取 HTTP/HTTPS 请求
- 自动解析 IP、端口、Host 和路径信息
- 日志写入文件,按时间戳命名
- 终端彩色输出,区分 HTTP/HTTPS
- 支持 DEBUG 模式记录详细日志
- 日志目录自动创建
makesudo ./sniff -
日志默认写入
./logs/default.log -
DEBUG 模式会按时间戳生成日志文件:
./logs/2025-08-22-21-45-00.log
2025-08-22 21:45:00 192.168.1.10 请求 http://example.com/index.html
2025-08-22 21:45:01 192.168.1.12 请求 https://unknown.domain
- HTTP 请求显示为绿色,HTTPS 请求显示为蓝色
-
初始化
- 解析命令行参数,选择抓包网络接口
- 创建日志目录
- 初始化日志文件(DEBUG 模式或默认日志)
-
抓包层(Capture)
- 使用
libpcap抓取指定接口的网络包 - 每收到一个数据包触发回调
- 使用
-
解析层(Parser)
- 分析 IP 层获取源 IP、目标 IP
- 分析 TCP 层获取源端口、目标端口
- 判断是否为 HTTP (port 80) 或 HTTPS (port 443)
- 提取 Host 和 URL 路径信息
-
日志层(Logger)
- 构造
RequestEvent结构体 - 打印到终端(彩色区分协议)
- 写入日志文件
- 定时刷新,保证数据实时性
- 构造
+-----------------+
| Main |
| 初始化 & 参数解析|
+--------+--------+
|
v
+-----------------+
| Capture |
| 抓包 libpcap |
+--------+--------+
|
v
+-----------------+
| Parser |
| IP/TCP解析 |
| 判断协议 & URL |
+--------+--------+
|
v
+-----------------+
| Logger |
| 打印终端 & 写日志|
+-----------------+
抓包和日志处理过程中可以使用简单的统计模型描述数据量和速率:
- 平均请求速率
-
$R$ :每秒请求数 (requests/sec) -
$N$ :在时间段$T$ 内抓到的请求总数 -
$T$ :抓包总时长(秒)
- 日志文件大小估算
-
$S$ :日志总大小 (bytes) -
$N$ :请求总数 -
$L$ :每条日志的平均长度 (bytes)
- 实时刷新延迟
-
$\Delta t$ :终端显示延迟 -
$B$ :输出缓冲区大小 -
$R$ :请求速率
终端运行效果:
- Unix 系统 (Linux/macOS)
- GCC 或兼容编译器
- libpcap 库
- root 权限抓取网卡数据包
.
├── include
│ ├── capture.h
│ ├── logger.h
│ ├── parser.h
│ └── utilities.h
├── src
│ ├── capture.c
│ ├── logger.c
│ ├── parser.c
│ └── utilities.c
├── localsniffer.c
├── Makefile
└── logs
- 需要 root 权限访问网络接口
- HTTPS 请求无法解析路径,默认记录
未知域名 - 日志文件可能包含敏感信息,请妥善管理
- 本工具仅供 授权的渗透测试、安全研究、教育学习 使用
- 未经授权使用本工具对目标进行扫描,可能违反相关法律法规
- 使用者须自行承担一切法律与道德责任
- 作者不对任何非法使用行为负责
感谢您使用本项目!您的支持是开源持续发展的核心动力。
每一份捐赠都将直接用于:
✅ 服务器与基础设施维护(魔法城堡的维修费哟~)
✅ 新功能开发与版本迭代(魔法技能树要升级哒~)
✅ 文档优化与社区建设(魔法图书馆要扩建呀~)
点滴支持皆能汇聚成海,让我们共同打造更强大的开源工具!
(小仙子们在向你比心哟~)
🙌 感谢您成为开源社区的重要一员!
💬 捐赠后欢迎通过社交平台与我联系,您的名字将出现在项目致谢列表!


