53 lines
1.4 KiB
Bash
Executable file
53 lines
1.4 KiB
Bash
Executable file
#!/bin/bash
|
|
NET_CHECK_HOST="${NET_CHECK_HOST:-8.8.8.8}"
|
|
NET_CHECK_TIMEOUT="${NET_CHECK_TIMEOUT:-3}"
|
|
|
|
check_internet() {
|
|
local host="${1:-$NET_CHECK_HOST}"
|
|
if ping -c 1 -W "$NET_CHECK_TIMEOUT" "$host" &>/dev/null; then
|
|
label_connected "Internet reachable ${DIM}(${host})${RESET}"
|
|
_log_write "NET " "Connected: $host"
|
|
return 0
|
|
else
|
|
label_disconnect "No internet connection ${DIM}(${host})${RESET}"
|
|
_log_write "NET " "Disconnected: $host"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
check_host() {
|
|
local host="$1"
|
|
local label="${2:-$host}"
|
|
if ping -c 1 -W "$NET_CHECK_TIMEOUT" "$host" &>/dev/null 2>&1; then
|
|
label_connected "$label"
|
|
return 0
|
|
else
|
|
label_disconnect "$label"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
check_url() {
|
|
local url="$1"
|
|
local label="${2:-$url}"
|
|
local http_code
|
|
http_code=$(curl -s -o /dev/null -w "%{http_code}" \
|
|
--max-time "$NET_CHECK_TIMEOUT" "$url" 2>/dev/null || echo "000")
|
|
|
|
if [[ "$http_code" =~ ^[23] ]]; then
|
|
label_connected "$label ${DIM}(HTTP ${http_code})${RESET}"
|
|
_log_write "NET " "URL OK [$http_code]: $url"
|
|
return 0
|
|
else
|
|
label_disconnect "$label ${DIM}(HTTP ${http_code})${RESET}"
|
|
_log_write "NET " "URL FAIL [$http_code]: $url"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
require_internet() {
|
|
if ! check_internet; then
|
|
log_error "Internet connection required. Aborting."
|
|
exit 1
|
|
fi
|
|
}
|