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