LocalIP (macOS): improve detection

When a VPN session is enabled, the default route interface is changed to `utun*`, however `ipconfig` doesn't support it for some reason

Use `ifconfig` instead
This commit is contained in:
李通洲 2023-08-14 15:07:53 +08:00
parent ccd5d9f526
commit b313d39366
No known key found for this signature in database
GPG key ID: 269AD4F5325A22A3

View file

@ -3878,10 +3878,10 @@ get_local_ip() {
"Mac OS X" | "macOS" | "iPhone OS") "Mac OS X" | "macOS" | "iPhone OS")
if [[ "${local_ip_interface[0]}" == "auto" ]]; then if [[ "${local_ip_interface[0]}" == "auto" ]]; then
interface="$(route get 1 | awk -F': ' '/interface/ {printf $2; exit}')" interface="$(route get 1 | awk -F': ' '/interface/ {printf $2; exit}')"
local_ip="$(ipconfig getifaddr "$interface")" local_ip="$(ifconfig "$interface" | grep "inet " | awk '{print $2}')"
else else
for interface in "${local_ip_interface[@]}"; do for interface in "${local_ip_interface[@]}"; do
local_ip="$(ipconfig getifaddr "$interface")" local_ip="$(ifconfig "$interface" | grep "inet " | awk '{print $2}')"
if [[ -n "$local_ip" ]]; then if [[ -n "$local_ip" ]]; then
prin "$interface" "$local_ip" prin "$interface" "$local_ip"
else else