diff options
Diffstat (limited to 'PVE/Network/SDN/Plugin.pm')
| -rw-r--r-- | PVE/Network/SDN/Plugin.pm | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/PVE/Network/SDN/Plugin.pm b/PVE/Network/SDN/Plugin.pm index a76442b..36efbe1 100644 --- a/PVE/Network/SDN/Plugin.pm +++ b/PVE/Network/SDN/Plugin.pm @@ -121,4 +121,26 @@ sub parse_tag_number_or_range { return (scalar(@elements) > 1); } +#to be move to Network.pm helper +sub get_first_local_ipv4_from_interface { + my ($interface) = @_; + + my $cmd = ['/sbin/ip', 'address', 'show', 'dev', $interface]; + + my $IP = ""; + + my $code = sub { + my $line = shift; + + if ($line =~ m!^\s*inet\s+($PVE::Tools::IPRE)(?:/\d+|\s+peer\s+)!) { + $IP = $1; + return; + } + }; + + PVE::Tools::run_command($cmd, outfunc => $code); + + return $IP; +} + 1; |
