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);
}
这样就可以很方便的抓包了。