5个版本
0.1.5 | 2022年3月27日 |
---|---|
0.1.4 | 2022年3月18日 |
0.1.3 | 2022年3月3日 |
0.1.2 | 2022年2月23日 |
0.1.1 | 2022年2月23日 |
#8 in #sniffing
19KB
425 行
Nets是一个Rust语言crate,用于访问pcap的包嗅探功能。它使用rust-pcap/pcap。
特性
- 列出设备
- 解析HTTP请求/响应
- 显示HTTP头部信息
依赖
- rust-pcap
- http
- Linux/MacOSX libpcap,Windows WinPcap
许可证
- "MIT OR Apache-2.0"
安装
git clone https://github.com/asmcos/nets
cd nets
Cargo build
演示
Ok(ParsedPacket { len: 0, timestamp: "", headers: [Tcp(TcpHeader { source_port: 50683, dest_port: 443, sequence_no: 286770016, ack_no: 0, data_offset: 11, reserved: 0, flag_urg: false, flag_ack: false, flag_psh: false, flag_rst: false, flag_syn: true, flag_fin: false, window: 65535, checksum: 14832, urgent_pointer: 0, options: None }), Ipv4(IPv4Header { version: 4, ihl: 20, tos: 0, length: 64, id: 0, flags: 2, fragment_offset: 0, ttl: 64, protocol: TCP, chksum: 11203, source_addr: 192.168.1.5, dest_addr: 12.27.16.10 }), Ether(EthernetFrame { source_mac: MacAddress([0, 116, 111, 112, 113, 122]), dest_mac: MacAddress([20, 113, 18, 15, 0, 10]), ethertype: IPv4 })], remaining: [] })
- http解析
Ok(Complete(330)),Request { method: Some("GET"), path: Some("/js/polyfill.min.js?features=es6"), version: Some(1), headers: [Header { name: "Host", value: "rustai.cn" }, Header { name: "Connection", value: "keep-alive" }, Header { name: "User-Agent", value: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36" }, Header { name: "Accept", value: "*/*" }, Header { name: "Referer", value: "http://rustai.cn/" }, Header { name: "Accept-Encoding", value: "gzip, deflate" }, Header { name: "Accept-Language", value: "zh-CN,zh;q=0.9" }] }
依赖
~3–4.5MB
~87K SLoC