Crate net_route

source ·
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.

Enums§