Skip to main content

enclosing

Function enclosing 

Source
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);