31 lines
883 B
Bash
Executable File
31 lines
883 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Read WiFi status
|
|
ssid=""
|
|
ip=""
|
|
|
|
if command -v nmcli &>/dev/null; then
|
|
active_line=$(nmcli -t -f active,ssid,signal dev wifi 2>/dev/null | grep '^yes' | head -n 1)
|
|
if [ -n "$active_line" ]; then
|
|
ssid=$(echo "$active_line" | cut -d':' -f2)
|
|
signal=$(echo "$active_line" | cut -d':' -f3)
|
|
fi
|
|
fi
|
|
|
|
if [ -z "$ssid" ]; then
|
|
# Fallback to iwgetid or /proc/net/wireless
|
|
if command -v iwgetid &>/dev/null; then
|
|
ssid=$(iwgetid -r 2>/dev/null)
|
|
fi
|
|
fi
|
|
|
|
# Get default IPv4
|
|
ip=$(ip -4 route get 1.1.1.1 2>/dev/null | awk '{print $7; exit}')
|
|
|
|
if [ -n "$ssid" ]; then
|
|
echo "{\"connected\": true, \"ssid\": \"$ssid\", \"ip\": \"${ip:-N/A}\"}"
|
|
elif [ -n "$ip" ]; then
|
|
echo "{\"connected\": true, \"ssid\": \"Ethernet\", \"ip\": \"$ip\"}"
|
|
else
|
|
echo "{\"connected\": false, \"ssid\": \"Not Connected\", \"ip\": \"None\"}"
|
|
fi
|