pub fn enclosing(ip: Ipv4Addr) -> Option<String>Expand description
The private range an address belongs to, as the source network of a rule; None for a
public address, which the declaration case refuses and no rule is derived for.
use std::net::Ipv4Addr;
use majordomus_cli::mesh::firewall::enclosing;
assert_eq!(enclosing(Ipv4Addr::new(192, 168, 100, 10)).as_deref(), Some("192.168.100.0/24"));
assert_eq!(enclosing(Ipv4Addr::new(100, 92, 246, 32)).as_deref(), Some("100.64.0.0/10"));
assert_eq!(enclosing(Ipv4Addr::new(10, 3, 2, 1)).as_deref(), Some("10.0.0.0/8"));
assert_eq!(enclosing(Ipv4Addr::new(172, 20, 0, 1)).as_deref(), Some("172.16.0.0/12"));
assert_eq!(enclosing(Ipv4Addr::new(8, 8, 8, 8)), None);