#!/bin/bash function WIFI(){ local OUT_FILE=$1 SSID="CSR_Gastzugang" PASSWORD="CSR_2021" #delete network to safely test nmcli connection delete $SSID if [[ -z "$SSID" || -z "$PASSWORD" ]]; then echo "Usage: $0 " echo -e "WIFI:\t Nein" >>"$OUT_FILE" return 1 fi echo "Verbinde: $SSID ..." nmcli dev wifi connect "$SSID" password "$PASSWORD" >/dev/null 2>&1 if [[ $? -ne 0 ]]; then echo "Verbinding fehlgeschlagen $SSID" echo -e "WIFI:\t Nein" >>"$OUT_FILE" return 2 fi echo "Verbindsaufbau..." # Wait up to 15 seconds for connection for i in {1..15}; do STATE=$(nmcli -t -f WIFI g) if [[ "$STATE" == "enabled" ]]; then CONN=$(nmcli -t -f ACTIVE,SSID dev wifi | grep '^ja' | cut -d: -f2) if [[ "$CONN" == "$SSID" ]]; then echo "Verbunden mit $SSID" break fi fi sleep 1 done if [[ "$CONN" != "$SSID" ]]; then echo "Verbindingsfehler" echo -e "WIFI:\t Nein" >>"$OUT_FILE" return 3 fi echo "Teste (ping 8.8.8.8)..." ping -c 3 8.8.8.8 >/dev/null 2>&1 PING_STATUS=$? if [[ $PING_STATUS -ne 0 ]]; then echo "Kein Internet" echo -e "WIFI:\t Nein" >>"$OUT_FILE" return 4 fi echo "Ping Erfolg" echo "Teste HTTP..." curl -s --max-time 5 https://google.com >/dev/null 2>&1 CURL_STATUS=$? if [[ $CURL_STATUS -ne 0 ]]; then echo "HTTP fehlgeschlagen" echo -e "WIFI:\t Nein" >>"$OUT_FILE" return 5 fi echo "Internet funktioniert!" echo -e "WIFI:\t Ja" >>"$OUT_FILE" return 0 }