or die "** Cannot run 'ip address' or 'ifconfig -a'\n";
while (not ($parm_ipv4 and $parm_ipv6) and defined($_ = <IFCONFIG>))
{
- if (/^(?:[0-9]+: )([^:]+): /) { $ifname = $1; }
+ if (/^(?:[0-9]+: )?([a-z0-9]+): /) { $ifname = $1; }
if (not $parm_ipv4 and /^\s*inet(?:\saddr)?:?\s?(\d+\.\d+\.\d+\.\d+)(?:\/\d+)?\s/i)
{
if (not $parm_ipv6 and /^\s*inet6(?:\saddr)?:?\s?([abcdef\d:]+)(?:%[^ \/]+)?(?:\/\d+)?/i)
{
- next if $1 eq '::' or $1 eq '::1' or $1 =~ /^ff00/i;
+ next if $1 eq '::' or $1 eq '::1' or $1 =~ /^ff00/i or $1 =~ /^fe80::1/i;
$parm_ipv6 = $1;
if ($1 =~ /^fe80/i) { $parm_ipv6 .= '%' . $ifname; }
}