A parser for the Radiotap capture format.
Add to your project with
cargo add radiotap
or directly editing your Cargo.toml
[dependencies]
radiotap = "1"
See the documentation here.
See examples/ for more.
The Radiotap::from_bytes(&capture)
constructor will parse all present fields
into a Radiotap struct:
let capture = [
0, 0, 56, 0, 107, 8, 52, 0, 185, 31, 155, 154, 0, 0, 0, 0, 20, 0, 124, 21, 64, 1, 213,
166, 1, 0, 0, 0, 64, 1, 1, 0, 124, 21, 100, 34, 249, 1, 0, 0, 0, 0, 0, 0, 255, 1, 80,
4, 115, 0, 0, 0, 1, 63, 0, 0
];
let radiotap = Radiotap::from_bytes(&capture).unwrap();
println!("{:?}", radiotap.vht);
If you just want to parse a few specific fields from the Radiotap capture you
can create an iterator using RadiotapIterator::from_bytes(&capture)
:
let capture = [
0, 0, 56, 0, 107, 8, 52, 0, 185, 31, 155, 154, 0, 0, 0, 0, 20, 0, 124, 21, 64, 1, 213,
166, 1, 0, 0, 0, 64, 1, 1, 0, 124, 21, 100, 34, 249, 1, 0, 0, 0, 0, 0, 0, 255, 1, 80,
4, 115, 0, 0, 0, 1, 63, 0, 0
];
for element in RadiotapIterator::from_bytes(&capture).unwrap() {
match element {
Ok((field::Kind::VHT, data)) => {
let vht: field::VHT = field::from_bytes(data).unwrap();
println!("{:?}", vht);
},
_ => {}
}
}
This project is dual licensed under the Apache 2.0 License and the MIT License.
See LICENSE-APACHE and LICENSE-MIT for more details.