2 个稳定版本
1.0.2 | 2022 年 9 月 4 日 |
---|
27 在 #operating-systems
3MB
2.5K SLoC
Packet-Snooper
packet_snooper
是一个跨平台的库,用于使用 Rust 编程语言编写的网络流量数据分析。
它可在 Windows 和类似 UNIX 的操作系统(如 Linux 和 macOS)上使用。
它是作为大学项目的一部分开发的(意大利都灵的 Politecnico 大学,"系统与设备编程"。2022 年)。
设置/安装
安装依赖项
- Windows
安装 WinPcap。
下载 WinPcap 开发者包。
将 /Lib 或 /Lib/x64 文件夹添加到您的 LIB 环境变量中。
- Linux
安装 libpcap 库的库和头文件。例如
On Debian based Linux: install libpcap-dev.
On Fedora Linux: install libpcap-devel.
注意:如果未以 root 用户身份运行,您需要设置类似如下的能力:sudo setcap cap_net_raw,cap_net_admin=eip path/to/bin。
- Mac OS X
默认情况下,libpcap 应该已经安装在 Mac OS X 上。
其他信息
注意:零超时可能导致 pcap::Capture::next 挂起并永远不会返回(因为它等待超时到期才返回)。这可以通过使用非零超时(如 libpcap 手册建议的)并在循环中调用 pcap::Capture::next 来修复。
TCP/IP 架构支持
第 2 层
full-support: EthernetII
identification: Ethernet802.3
future support: ()
第 3 层(以太网字段 "EtherType"。IEEE 802.3)
full-support: IPv4, (IPv6), IPv6HopByHop
identification: ARP
future support: ()
第 4 层(L3 协议的 "协议类型" 字段)
full-support: UDP, (TCP)
identification: (). Others: IGMP, ICMPv4, ICMPv6
future support: ()
高层
full-support: ()
identification: FTP=20, SSH=22, SMPT=23, DNS=53, HTTP=80, POP3=110
SFTP=115, SNMP=161, BGP=179, HTTPS=443
future support: ()
架构概述 & 内部状态机设计
使用的技术
- 主要编程语言:Rust
- 版本控制,团队合作:Git,GitHub
使用的库(rust crates)
- pcap
- serde
- serde_json
作者
- Alberto Foti
- Samuele Giannetto