Benutzer-Werkzeuge

Webseiten-Werkzeuge


wlan

WIFI-Setup

Mit neueren Betriebssystemen beim Raspberry Pi geht das einrichten jeweils anders. Entweder es ist in der Datei /etc/wpa_supplicant/wpa_supplicant.conf vorhanden, oder es geht mittels NetworkManager.

nmcli device wifi list             # Zeigt verfügbare Netzwerke
nmcli connection show              # Zeigt gespeicherte Verbindungen
nmcli connection show <name>       # Details zu einer bestimmten Verbindung

Verbindungen stehen in /etc/NetworkManager/system-connections/

Eine neue Verbindung einrichten:

sudo nmcli connection add type wifi ifname wlan0 con-name "TheArkMobil" ssid "TheArkMobil"
sudo nmcli connection modify "TheArkMobil" wifi-sec.key-mgmt wpa-psk
sudo nmcli connection modify "TheArkMobil" wifi-sec.psk "geheim1234"
sudo nmcli connection modify "TheArkMobil" connection.autoconnect no
# sudo nmcli connection up "TheArkMobil"

Jetzt ist der Rechner mit dem Hotspot verbunden. Aber über welche IP kann ich ihn nun erreichen? Das ist nicht so einfach. Fing hat mir nicht geholfen, da es zwar meine WLAN-Adressen ausgibt, aber nicht die mit dem Hotspot verbundenen Geräte und die dazugehörige IP. In den Einstellungen habe ich nur den Hostnamen und die MAC-Adresse gefunden.

Eine Lösung ist, bei Verbindungswechsel einen URL-Aufruf zu meinem Rechner zu machen, der dann die IP in eine Datei schreibt.

nano /home/pi/post_ip.sh
#!/bin/bash
# Aktuelle IP-Adresse abrufen
IP=$(hostname -I | awk '{print $1}')
# URL, an die die IP-Adresse gesendet werden soll (z. B. eine Web-API)
WEBHOOK_URL="https://varlet.*.*/ip_report.php"
# IP per curl an den Webserver senden
curl -X POST -d "ip=$IP" $WEBHOOK_URL

chmod +x /home/pi/post_ip.sh

sudo nano /etc/NetworkManager/dispatcher.d/99-post-ip
#!/bin/bash
IFACE=$1
STATUS=$2
# Nur ausführen, wenn WLAN aktiv wurde
if [[ "$IFACE" == "wlan0" && "$STATUS" == "up" ]]; then
    sleep 5  # etwas warten, damit DHCP abgeschlossen ist
    /home/pi/post_ip.sh
fi

sudo chmod +x /etc/NetworkManager/dispatcher.d/99-post-ip

Beispiel in der Datei: 192.168.237.34. Der Aufruf mit „http://192.168.237.34/“ ging dann vom Smartphone.

Zusatzinfo zum Webserver. Nachdem es ein Webserver mit homebrew ist, findet man die Logfiles wie folgt

ps -ef |grep httpd
/usr/local/opt/httpd/bin/httpd -V
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D SERVER_CONFIG_FILE="/usr/local/etc/httpd/httpd.conf"
ServerRoot "/usr/local/opt/httpd"
ErrorLog "/usr/local/var/log/httpd/error_log"

Am Server:
sudo nano /Library/WebServer/Documents/ip_report.php
<?php
if (isset($_POST['ip'])) {
    $ip = $_POST['ip'];
    // Hier könntest du die IP-Adresse in eine Datei oder eine Datenbank speichern
    file_put_contents("/tmp/ip_log.txt", $ip . "\n", FILE_APPEND);
}
?>
wlan.txt · Zuletzt geändert: 2025/04/13 12:14 von varnholt