听说 rust 抓包能提速1000倍。所以我就写了一个libpcap 的rust 版本

libpcap 是和gopacket一样都是基于libpcap的C语言版本封装了一套接口函数。

如何引用libpcap?

仓库地址。
https://crates.io/crates/libpcap

在你的项目配置文件 Cargo.toml

[dependencies]
libpcap = '0.1.x'

就可以了,如果还不会,你可以参考 https://crates.io/crates/nets。这个项目使用了libpcap。

代码例子:

mod lib;


use libpcap;
use std::slice;

fn main (){

    println!("{}","Welcome to use nets");

    let dev = libpcap::lookup();    

    println!("{}",dev);

    let mut Packet = libpcap::open(dev.as_str());

    libpcap::setfilter(&mut Packet,"tcp port 80");
    while let data = libpcap::next_ex(&mut Packet){
        println!("Packet Length {:?}",Packet.head.len);
        println!("{:?}",Packet);
    }

    libpcap::close(&mut Packet); 
    
}

这样就可以很方便的抓包了。

你可能感兴趣的:(听说 rust 抓包能提速1000倍。所以我就写了一个libpcap 的rust 版本)