Raspberry Pi Ping Server

  • Hallo zusammen,

    Ich bin aktuell auf der Suche nach einer Möglichkeit um alle 5 min alle Smartphones im WiFi anzupingen. Wenn alle Geräte nicht erreichbar sind, soll ein Relais, welches an einem Gpio angeschlossen ist, geschalten werden.
    Sobald ein Gerät wieder erreichbar ist, soll das Relais geöffnet werden.

    Hat jemand eine Idee wie ich das realisieren kann? :D


    Herzlichen Dank im Voraus

  • Hallo C-1989-H,


    Hat jemand eine Idee wie ich das realisieren kann? :D


    Ist Programmieren eine Option? Wenn ja, in welcher Programmiersprache?

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Dein Ziel ist sehr offensichtlich: Du willst wenn sich wenigstens ein SP im Netz befindet eine Aktion auslösen :D

    Wie Andreas schon schrieb geht das programmatisch indem man zyklisch nach den IPs im lokalen Netz sucht. Willst Du das selbst programmieren? Da das ein sehr häufig anzutreffendes Benutzerszenario ist gibt es dazu sicherlich fertige Lösungen. Ich muss gestehen dass ich bei meiner q&d Suche dazu nicht erfolgreich war - aber es gibt bestimmt fertige Lösungen. Ansonsten hatte ich mal das Problem dass ein System wenn bestimmte IPs nicht mehr online sind sich runterfahren sollte und das in bash implementiert Sofern Du Dich mit bash auskennst ist das eine gute Basis von der Du Dein Ziel erreichen werden wirst ;)

  • Also, auf ioBroker.com gibt es einen Adapter namens Radar, der IP oder Bluetooth-Geräte checkt.
    Ein anderer Adapter kann GPIO steuern.

    All das basiert auf nodejs und wird (mit vielen anderen Adaptern und Optionen) von mir verwendet.

    Ich habe noch PIR's am GPIO, 'ne cam und auch einige Adapter die mir Bewegungsmelder und Lampen schalten...

    Frank

    Nach 35 Jahren im IT business hab ich mit Raspi mal selbst zum Programmieren begonnen...
    Habe auch einen 3D-Drucker, eine CNC-Fräse und etwas Elektronik-Bastelei als Hobby

  • Mit einem Shellscript müsste das gehen. Ich hab sowas ähnliches mal unter Windows mit einem Batchfile gemacht. Würde mich wundern, wenn das auf Linux nicht mindestens ganu so einfach ist. Dahinter dann ein kleines Python-Script, das das Relais schaltet. Sicher kann man auch das ganze Ding in Python machen.

    Ich hab es einfach gehalten und in der Ping-Rückmeldung nach einem String gesucht, der nur da ist, wenn das Gerät antwortet. So siehts aus:
    @echo off
    ping -n 1 192.168.0.111 | FIND "TTL="
    if errorlevel 1 goto end
    msg Gerät ist vorhanden
    :end

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!


  • Ich hab es einfach gehalten und in der Ping-Rückmeldung nach einem String gesucht, der nur da ist, wenn das Gerät antwortet.

    BTW: Dann könntest Du auch den Rückgabewert (0 oder 1) von ping auswerten.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample


  • Echt? Gibt Windoof sowas zurück?

    Naja, Du hast geschrieben:

    Zitat


    Würde mich wundern, wenn das auf Linux nicht mindestens ganu so einfach ist.

    Warum jetzt plötzlich Windows? War das mit Windows nicht nur ein Beispiel von dir?

    Ich benutze Windows nicht.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Warum jetzt plötzlich Windows? War das mit Windows nicht nur ein Beispiel von dir?

    Ich benutze Windows nicht.

    Du darfst schon genau lesen, was ich schreibe. "Ich habe sowas ähnliches in Windows gemacht." Was ich da zum Besten gegeben habe, ist meine Windows-Version. In Linux geht das sicher auch per Shellscript. Oder eben in Python. Das kann kein wirklich großes Problem sein. Tippe mal, mit 15-20 Zeilen Programm kommt man hin.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Ich wollte so etwas auch schon umsetzen (mit FHEM) und habe die Smartphones sowohl mit PING als auch mit ARP-PING versucht zu finden.
    Mein Ergebnis: Je neuer das Smartphone ist, desto unsicherer ist die Erkennung mittels WLAN, da die neueren Smartphone zwecks Akkusparen das WLAN bei Nichtbenutzung in einen Power-Save Modus versetzen und somit von aussen im Netzwerk nicht mehr antwortet.

    Anfragen ausserhalb des Forums (Mail o.ä.) werden ignoriert!


  • Je neuer das Smartphone ist, desto unsicherer ist die Erkennung mittels WLAN, da die neueren Smartphone zwecks Akkusparen das WLAN bei Nichtbenutzung in einen Power-Save Modus versetzen und somit von aussen im Netzwerk nicht mehr antwortet.

    Kann ich bestätigen.

    Ich habe mich auch an dieser Thematik versucht, aber gegensätzliches Szenario "Welcome home" - Erkennung, also Aktion wenn Smartphone da.

    nmap und ping bringen die IPs nicht als "online"!

    Knut


  • In Linux geht das sicher auch per Shellscript. Oder eben in Python. Das kann kein wirklich großes Problem sein. Tippe mal, mit 15-20 Zeilen Programm kommt man hin.

    Ja sicher geht das mit Linux. Aber warum 15-20 Zeilen, wenn dafür eine Zeile reicht. Z. B.:

    Code
    :~$ ping -c 3 -W 2 8.8.8.8> /dev/null 2>&1; echo $?
    0
    Code
    :~$ ping -c 3 -W 2 8.8.8.1> /dev/null 2>&1; echo $?
    1


    Wobei ich im (W)LAN nicht ping (icmp), sondern das arp-Protokoll (tools: arp-scan oder arping oder gleichwertig) verwenden würde.


    Automatisch zusammengefügt:


    nmap und ping bringen die IPs nicht als "online"!

    BTW: Teste mal ob das "Pingen" mit dem arp-Protokoll, die IPs als "online" bringt.

    EDIT:

    Wenn das nicht der Fall ist, dann wäre es ganz schlecht wenn diese Geräte auf ein arp-request des Routers (oder anderer Geräte im W/LAN) nicht mit einem arp-reply antworten würden. Der Router kann diese Geräte dann "abmelden", aus seinem W/LAN.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (11. April 2017 um 09:29)

  • Danke für die vielen Antworten.

    Ich werde es mal mit iobroker versuchen.

    Das mit dem PowerSaveModus ist natürlich ein Problem. Ich werde auf jeden Fall mal schauen, ob es funktioniert.
    Letztendlich will ich auch eine WelcomeHome Funktion auf die KNX-Anlage schalten :)

    Ich halte euch auf dem laufenden

    Grüße


  • ... Option hast du hinter arp-scan ...

    Z. B.:

    Code
    :~$ sudo arp-scan -N -I wlan0 192.168.178.0/24 | grep b8:27:eb:a8:6a:64 > /dev/null 2>&1; echo $?
    0


    bzw.

    Code
    :~$ sudo arp-scan -N -I wlan0 192.168.178.0/24 | grep b8:27:eb:a8:6a:65 > /dev/null 2>&1; echo $?
    1

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!