diff --git a/manage-lxc-vm-notes.sh b/manage-lxc-vm-notes.sh index 98eed5a..681d3d8 100755 --- a/manage-lxc-vm-notes.sh +++ b/manage-lxc-vm-notes.sh @@ -94,15 +94,19 @@ collect_lxc_summary() { name=$(pct exec "$vmid" -- sh -c "hostname -s 2>/dev/null || cat /etc/hostname 2>/dev/null || echo lxc-$vmid" 2>/dev/null | head -n1 | tr -d '\r') ip=$(pct exec "$vmid" -- sh -c ' ( + # Prefer iproute2 global IPv4 addresses + ip -o -4 addr show up scope global 2>/dev/null | awk "{print \$4}" || true; + # Fallbacks hostname -I 2>/dev/null || true; - ip -4 -o addr 2>/dev/null | awk "{print \$4}" || true; ip -4 addr 2>/dev/null | awk "/inet /{print \$2}" || true; - ifconfig 2>/dev/null | awk "/inet /{print \$2}" || true; + ifconfig 2>/dev/null | awk "/inet (addr:)?/{print \$2}" | sed "s/^addr://" || true; + ip route get 1 2>/dev/null | awk "{for(i=1;i<=NF;i++) if (\$i==\"src\") print \$(i+1)}" || true; grep -oE "([0-9]{1,3}\\.){3}[0-9]{1,3}" /proc/net/fib_trie 2>/dev/null || true - ) | tr " " "\n" \ - | grep "^192\\.168\\.1\\." \ + ) | tr " \t" "\n\n" \ + | sed "s/,//g" \ + | grep -E "^192\\.168\\.1\\.([0-9]{1,3})" \ | cut -d/ -f1 \ - | awk -F. "{ if (\\$4>0 && \\$4<255) print }" \ + | awk -F. "{ if (\\$4+0>0 && \\$4+0<255) print }" \ | sort -u | tr "\n" " " | sed "s/ *$//"' 2>/dev/null || true) # Tailcale check ts_issue=$(check_lxc_tailscale_issue "$vmid")