mirror of
https://github.com/achanda/ipnetwork.git
synced 2025-06-19 18:07:45 +00:00
10
src/lib.rs
10
src/lib.rs
@ -78,7 +78,8 @@ impl Ipv4Network {
|
|||||||
|
|
||||||
pub fn contains(&self, ip: Ipv4Addr) -> bool {
|
pub fn contains(&self, ip: Ipv4Addr) -> bool {
|
||||||
let (_, net) = self.network();
|
let (_, net) = self.network();
|
||||||
(u32::from(ip) & net) == net
|
let (_, mask) = self.mask();
|
||||||
|
(u32::from(ip) & mask) == net
|
||||||
}
|
}
|
||||||
|
|
||||||
fn parse_addr(addr: &str) -> Result<Ipv4Addr, String> {
|
fn parse_addr(addr: &str) -> Result<Ipv4Addr, String> {
|
||||||
@ -289,4 +290,11 @@ mod test {
|
|||||||
let ip = Ipv4Addr::new(74, 125, 227, 4);
|
let ip = Ipv4Addr::new(74, 125, 227, 4);
|
||||||
assert!(cidr.contains(ip));
|
assert!(cidr.contains(ip));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn not_contains_v4() {
|
||||||
|
let cidr = Ipv4Network::new(Ipv4Addr::new(10, 0, 0, 50), 24);
|
||||||
|
let ip = Ipv4Addr::new(10, 1, 0, 1);
|
||||||
|
assert!(!cidr.contains(ip));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user