aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2022-10-31 11:10:11 +0100
committerHimbeerserverDE <himbeerserverde@gmail.com>2022-10-31 11:10:11 +0100
commit7f50fbbc49c6f5b0d46af40bad88ed9716d09ec1 (patch)
treeb2dbf5c92e707a1bdcc021c155b85d9670b16e60
parent4ccd2a322bc87f4e7718e6db4d5b3e62acd30805 (diff)
implementing filtering for IPv4
-rw-r--r--src/lib.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 523bf56..2508035 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -50,6 +50,18 @@ pub fn addresses(link: String) -> Result<Vec<IpAddr>> {
rt.block_on(internal_addresses(Some(link)))
}
+pub fn ipv4_addresses(link: String) -> Result<Vec<Ipv4Addr>> {
+ let addrs = addresses(link)?
+ .iter()
+ .filter_map(|addr| match addr {
+ IpAddr::V4(addr) => Some(*addr),
+ IpAddr::V6(_) => None,
+ })
+ .collect();
+
+ Ok(addrs)
+}
+
pub fn all_addresses() -> Result<Vec<IpAddr>> {
let rt = Runtime::new()?;