Expand description
This project aims to provide a high level interface for manipulating and observing the routing table on a variety of platforms.
§Examples
§Adding a route
// route traffic destined for 10.14.0.0/24 to 192.1.2.1 using interface 9
let handle = Handle::new()?;
let route = Route::new("10.14.0.0".parse().unwrap(), 24)
.with_ifindex(9)
.with_gateway("192.1.2.1".parse().unwrap());
handle.add(&route).await
§Listening to changes in the routing table
let handle = Handle::new()?;
let stream = handle.route_listen_stream();
futures::pin_mut!(stream);
while let Some(event) = stream.next().await {
println!("{:?}", event);
}
Structs§
- Handle that abstracts initialization and cleanup of resources needed to operate on the routing table.
- Contains information that describes a route in the local computer’s Ipv4 or Ipv6 routing table.