diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index d871025eb..52dd5b584 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -1306,6 +1306,22 @@ sub grab_address_from_file($) { return; } +sub get_ipaddresses_from_interface($) { + my ($interface) = @_; + my @ip_addresses; + + my $output = `ip addr show $interface 2>/dev/null`; + + # Check if the command was successful + if ($? == 0) { + # Extract IP addresses using regex + while ($output =~ /inet (\d+\.\d+\.\d+\.\d+)/g) { + push @ip_addresses, $1; + } + } + return @ip_addresses; +} + # Function to get all configured and enabled nameservers. sub get_nameservers () { my %settings; diff --git a/html/cgi-bin/loxilbconfig.cgi b/html/cgi-bin/loxilbconfig.cgi index 1947a6280..6037e22fb 100644 --- a/html/cgi-bin/loxilbconfig.cgi +++ b/html/cgi-bin/loxilbconfig.cgi @@ -288,6 +288,7 @@ my @PROTOCOLS = ("tcp", "udp"); my @ALGO = ("rr", "hash", "priority", "persist", "lc"); my @MODE = ("default", "onearm", "fullnat", "dsr"); my @MONITOR = ("on", "off"); +my @VIP = &General::get_ipaddresses_from_interface("red0"); #Edited line number (KEY1) passed until cleared by 'save' or 'remove' or 'new sort order' print < $Lang::tr{'loxilb lb name'}:  - + + $Lang::tr{'loxilb lb extip'}:  - + +