ether
is a crate that provides a library parsing and manipulating network data, packet captures.
NOTE: ether
is currently in the alpha phase (API is likely to change).
Here's a simple example that prints all packets received on interface en0
:
extern crate ether;
use ether::tap;
use ether::tap::Stream;
fn main() {
let mut tap = tap::Tap::new("en0").unwrap();
for packet in tap.stream().wait().filter_map(|p| p.ok()) {
println!("{:?}", packet);
}
}
interconnect
pcap
tap
ethdump
ping
trace-route