diff --git a/vps2arch b/vps2arch index 09c6836..4bacb97 100755 --- a/vps2arch +++ b/vps2arch @@ -225,14 +225,14 @@ configure_bootloader() { configure_network() { local gateway dev ip - read -r dev gateway <<-EOF - $(awk '$2 == "00000000" { ip = strtonum(sprintf("0x%s", $3)); - printf ("%s\t%d.%d.%d.%d", $1, - rshift(and(ip,0x000000ff),00), rshift(and(ip,0x0000ff00),08), - rshift(and(ip,0x00ff0000),16), rshift(and(ip,0xff000000),24)) ; exit }' < /proc/net/route) - EOF - - set -- $(ip addr show dev "$dev" | awk '($1 == "inet") { print $2 }') + dev=$(ls /sys/class/net | grep -v lo) + if [ -n "$(ip -4 route show default | awk '{ print $3 }')" ]; then + gateway=$(ip -4 route show default | awk '{ print $3 }') + set -- $(ip addr show dev "$dev" | awk '($1 == "inet") { print $2 }') + else + gateway=$(ip -6 route show default | awk '{ print $3 }') + set -- $(ip addr show dev "$dev" | awk '($1 == "inet6" && $2 !~ /^fe80/) { print $2 }') + fi ip=$@ # FIXME Not supported for "P2P" interfaces, such as venet, yet