听说 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); 
    
}

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容