]> git.proxmox.com Git - pve-common.git/blobdiff - src/PVE/Network.pm
network: add unique_ips function
[pve-common.git] / src / PVE / Network.pm
index 48268b1a5195b1563c737bedb67d1513dc33a6d9..bb574e0aff75ab53ab37145dcb0a248346ce522e 100644 (file)
@@ -665,4 +665,24 @@ sub canonical_ip {
     return $ip_obj->canon();
 }
 
+# List of unique, canonical IPs in the provided list.
+# Keeps the original order, filtering later duplicates.
+sub unique_ips {
+    my ($ips) = @_;
+
+    my $res = [];
+    my $seen = {};
+
+    for my $ip (@{$ips}) {
+       $ip = canonical_ip($ip);
+
+       next if $seen->{$ip};
+
+       $seen->{$ip} = 1;
+       push @{$res}, $ip;
+    }
+
+    return $res;
+}
+
 1;