#packet-parser #packet #pcap #nom #safe #safe-network #design

net-parser-rs

利用Rust和nom进行安全高效数据包解析的基本网络解析器。设计受到pktparse-rs的启发。

4个版本 (2个重大更新)

0.3.0 2020年6月9日
0.2.0 2020年4月6日
0.1.1 2018年11月16日
0.1.0 2018年11月16日

1393解析器实现

Download history 23/week @ 2024-03-11 23/week @ 2024-04-01

每月下载量 99
用于 suricata-ipc

MIT 许可

4MB
2.5K SLoC

网络数据包解析器 (net-parser-rs)

利用Rust和nom进行安全高效数据包解析的基本网络解析器。设计受到pktparse-rs的启发。

入门指南

将net-parser-rs添加到依赖项

[dependencies]
net-parser-rs="0.3"
    #![feature(try_from)]
    extern crate net_parser_rs;

    use net_parser_rs::CaptureParser;
    use std::*;

    //Parse a file with global header and packet records
    let file_bytes = include_bytes!("capture.pcap");
    let records = CaptureParser::parse_file(file_bytes).expect("Could not parse");

    //Parse a sequence of one or more packet records
    let records = CaptureParser::parse_records(record_bytes).expect("Could not parse");

    //Parse a single packet
    let packet = CaptureParser::parse_record(packet_bytes).expect("Could not parse");

    //Convert a packet into flow information
    use net_parser_rs::flow::*;

    let flow = packet.extract_flow().expect("Could not extract flow");

依赖项