Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Skript zur Prüfung ob DHCP Server arbeitet

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    5
    1
    42

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

Skript zur Prüfung ob DHCP Server arbeitet

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
11 Beiträge 2 Kommentatoren 1.6k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    schrieb am zuletzt editiert von
    #1

    Bei mir vergab heute der DHCP Server in der Diskstation keine IP-Adressen, was nach und nach für Fehler gesorgt hatte.

    Hat mich etwas Zeit gekostet.

    Ich habe nun ein kleines Skript erstellt, welches nun regelmässig prüft, ob DHCP verfügbar ist und auch Adressen vergibt.

    Den Status zeige ich nun in VIS an.

    Anbei das Skript, falls noch jemand Verwendung dafür hat:

    ! // benötigt das Tool dhtest: https://github.com/saravana815/dhtest // Anwendungsbeispiel: http://www.admin-magazin.de/News/Tipps/ADMIN-Tipp-DHCP-Server-testen ! var pfad = "Service.dhcp" + "."; var cronStr = "*/10 * * * *"; // wie oft soll der Test wiederholt werden ! // Umgebungsparameter für die DHCP Abfrage: var iface = "eth0"; // Netzwerkschnistelle über die die DHCP-Anfage erfolgen soll var pseudoMac = "ba:de:fe:ba:de:fe"; var timeoutSec = "5"; // wie lange soll auf eine Antwort vom DHCP Server gewartet werden (min. 5 Sekunden) ! var abfrageDHCP = "/home/pi/dhtest-master/dhtest -m "+pseudoMac+" -a -T "+timeoutSec+" -i "+iface; var forceCreation = false; // true: Datenpunkte neu initalisieren (Standardwerte, Texte werden überschrieben ) ! log(abfrageDHCP); ! var datenpunkte = { 'dhcp_ok': { "init":false, "common": { name: 'IP vom DHCP erfolgreich erhalten?', desc: 'IP vom DHCP erfolgreich erhalten?', type: 'boolean', unit: '', role: 'value' } }, 'dhcp_last_ok': { "init":"initalisiert", "common": { name: 'Zeit der letzten Prüfung', desc: 'Zeit der letzten Prüfung', type: 'string', unit: '', role: 'value' } }, 'dhcp_ip': { "init":"", "common": { name: 'DHCP Test wurde folgende IP zugewiesen', desc: 'DHCP Test wurde folgende IP zugewiesen', type: 'string', unit: '', role: 'value' } } }; ! function createDp() { var name; var init; var common; for (var dp in datenpunkte) { name = pfad + dp; init = datenpunkte[dp].init; common = datenpunkte[dp].common; createState(name, init , forceCreation, common); } } ! function now() { return formatDate(new Date(), "hh:mm:ss, YYYY-MM-DD"); } ! // dhcp Anfrage senden function getDHCP() { exec(abfrageDHCP, function(err, stdout, stderr) { if (err) { //log("Fehler: " + err); setState(pfad + 'dhcp_last_ok',now()); setState(pfad + 'dhcp_ok',false); setState(pfad + 'dhcp_ip',"keine ip per dhcp erhalten"); return; } log("stdout: " + stdout); setState(pfad + 'dhcp_ip',stdout.match(/\d+\.\d+\.\d+\.\d+/i).toString()); setState(pfad + 'dhcp_last_ok',now()); setState(pfad + 'dhcp_ok',true); }); } ! function getData() { getDHCP(); } ! // regelmässige Wiederholungen // ----------------------------------------------------------------------------- schedule(cronStr, getData); ! // main // ----------------------------------------------------------------------------- function main() { getData(); } ! // Start Skript: // ----------------------------------------------------------------------------- ! createDp(); setTimeout(main, 500); !

    DHCP arbeitet:
    327_dhcp_ok.jpg

    DHCP gestört:
    327_dhcp_gest_rt.jpg

    Adapter: Fritzbox, Unify Circuit
    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

    1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      simpixo
      schrieb am zuletzt editiert von
      #2

      @ruhr70:

      Ich habe nun ein kleines Skript erstellt, welches nun regelmässig prüft, ob DHCP verfügbar ist und auch Adressen vergibt.

      Den Status zeige ich nun in VIS an. `

      Hallo ruhr70

      ich habe versucht das Ganze zum laufen zu bringen, leider erfolglos. Irgendwie bekomme ich dhtest nicht installiert

      Ich habe per wget das Zip File herunter geladen/ entpackt und dann wollte ich fortfahren aber erhalte die folgende Fehlermeldung…. hast du zufällig das gleiche Problem gehabt?

      root@HQ-ioBroker-Prod:/home/iobroker/dhtest-master# make
      gcc    -c -o dhtest.o dhtest.c
      dhtest.c:7:18: fatal error: stdio.h: Datei oder Verzeichnis nicht gefunden
      compilation terminated.
      <eingebaut>: die Regel für Ziel „dhtest.o“ scheiterte
      make: *** [dhtest.o] Fehler 1
      root@HQ-ioBroker-Prod:/home/iobroker/dhtest-master#</eingebaut> 
      

      Gruß

      Adrian

      1 Antwort Letzte Antwort
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        schrieb am zuletzt editiert von
        #3

        @simpixo:

        ich habe versucht das Ganze zum laufen zu bringen, leider erfolglos. Irgendwie bekomme ich dhtest nicht installiert

        Ich habe per wget das Zip File herunter geladen/ entpackt und dann wollte ich fortfahren aber erhalte die folgende Fehlermeldung…. hast du zufällig das gleiche Problem gehabt? `

        Ich habe das Tool auf zwei Rechnern installiert und in beiden Fällen problemlos.

        Ich habe das genauso gemacht, wie Du. Datei mit wget heruntergelassen und entpackt und dann stur per copy & paste die Kommandos von der Github-Seite abgeschickt. Ging schnell und jeweils ohne Fehler.

        Einzig das unzip passte nicht (unzip dhtest-master.zip), da die Datei master.zip hiess.

        So sieht bei mir der Inhalt vom Ordner dhtest-master aus:

        -bash-4.3$ cd dhtest-master
        -bash-4.3$ ls
        ba:de:fe:ba:de:fe  dhscript.py	dhtest	dhtest.c  dhtest.o  functions.c  functions.o  headers.h  LICENSE  Makefile  README.txt
        -bash-4.3$ 
        

        Ich denke mal, dass bei Dir etwas nicht installiert ist.

        Versuch mal vorher;

        apt-get update
        apt-get install build-essential
        

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Antwort Letzte Antwort
        0
        • ruhr70R Offline
          ruhr70R Offline
          ruhr70
          schrieb am zuletzt editiert von
          #4

          @simpixo:

          ich habe versucht das Ganze zum laufen zu bringen, leider erfolglos. Irgendwie bekomme ich dhtest nicht installiert `

          Hast Du das eigentlich noch einmal probiert (build-essential)?

          Adapter: Fritzbox, Unify Circuit
          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            simpixo
            schrieb am zuletzt editiert von
            #5

            Ohh sorry….vergessen zu antworten, liege aber seit gestern ein wenig flach :roll:

            nach der Installation konnte ich den "make" Befehl ausführen, das Tool ist jetzt lauffähig!!!

            Aber..... egal was ich mache ich erhalte keine IP vom DHCP. Ich habe es auch auf der Commandline versucht ohne Erfolg

            Vielleicht liegt es ja an der ESXi auf der der iobroker läuft.....

            1 Antwort Letzte Antwort
            0
            • ruhr70R Offline
              ruhr70R Offline
              ruhr70
              schrieb am zuletzt editiert von
              #6

              Ah… OK

              Das hatte ich bei mir am Master unter ESXi auch. Deswegen läuft das Skript auf einem Satelliten (Raspberry Pi 3).

              Ich vermute, dass es auch unter ESXi funktioniert, man aber ein paar Einstellungen vornehmen muss (promiscuous mode?).

              https://kb.vmware.com/selfservice/micro … Id=1004099

              Da ich genug Satelliten habe, habe ich es auf dem Pi belassen.

              Adapter: Fritzbox, Unify Circuit
              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

              1 Antwort Letzte Antwort
              0
              • ruhr70R Offline
                ruhr70R Offline
                ruhr70
                schrieb am zuletzt editiert von
                #7

                Gerade auch noch einmal unter ESXi versucht. Da bekomme ich es auch nicht hin.

                michael@ubuntu1604server:~/dhtest-master$ sudo ./dhtest -m af:fe:af:fe:af:fe -i ens160
                DHCP discover sent	 - Client MAC : af:fe:af:fe:af:fe
                DHCP discover sent	 - Client MAC : af:fe:af:fe:af:fe
                DHCP discover sent	 - Client MAC : af:fe:af:fe:af:fe
                

                Adapter: Fritzbox, Unify Circuit
                Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                1 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  simpixo
                  schrieb am zuletzt editiert von
                  #8

                  Da bin ich aber beruhigt [emoji6] dachte es ist nur bei mir so

                  Gruß

                  Adrian

                  Gesendet von iPhone mit Tapatalk Pro

                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    simpixo
                    schrieb am zuletzt editiert von
                    #9

                    @ruhr70:

                    Gerade auch noch einmal unter ESXi versucht. Da bekomme ich es auch nicht hin.

                    michael@ubuntu1604server:~/dhtest-master$ sudo ./dhtest -m af:fe:af:fe:af:fe -i ens160
                    DHCP discover sent	 - Client MAC : af:fe:af:fe:af:fe
                    DHCP discover sent	 - Client MAC : af:fe:af:fe:af:fe
                    DHCP discover sent	 - Client MAC : af:fe:af:fe:af:fe
                    ```` `  
                    

                    Also ich habe es jetzt hinbekommen, aber du musst wie von dir schon erwähnt den "Promiscous-Modus" aktivieren

                    432_screenshot_2017-03-07_09.10.02.png

                    Danach wird eine IP ohne Probleme geholt.

                    432_screenshot_2017-03-07_09.12.50.png

                    Gruß

                    Adrian

                    Update

                    So wird der "Promiscuous-Modus" auf dem ESXi konfiguriert:

                    ` > To configure a portgroup or virtual switch to allow promiscuous mode:

                    Log into the ESXi/ESX host or vCenter Server using the vSphere Client.

                    Select the ESXi/ESX host in the inventory.

                    Click the Configuration tab.

                    In the Hardware section, click Networking.

                    Click Properties of the virtual switch for which you want to enable promiscuous mode.

                    Select the virtual switch or portgroup you wish to modify and click Edit.

                    Click the Security tab.

                    From the Promiscuous Mode dropdown menu, click Accept. `

                    Zu finden auch unter

                    https://kb.vmware.com/selfservice/micro … Id=1004099

                    1 Antwort Letzte Antwort
                    0
                    • ruhr70R Offline
                      ruhr70R Offline
                      ruhr70
                      schrieb am zuletzt editiert von
                      #10

                      @simpixo:

                      Also ich habe es jetzt hinbekommen, aber du musst wie von dir schon erwähnt den "Promiscous-Modus" aktivieren `

                      So die Theorie ;-)

                      Mein Versuch gestern war nachdem ich auf dem ESXi den "Promiscous-Modus" aktiviert habe. Sowohl für den vSwitch, als auch für die Portgruppe. In dem Link, den ich oben gepostet hatte, stand drin, dass die Portgruppe die Einstellung des vSwitch "überstimmt". Ist jedenfall nun überall eingestellt und funktioniert leider nicht :-(

                      Werde wohl noch irgendwo was einstellen müssen. Wir haben doch beide einen NUC oder?

                      [EDIT]

                      Du hast den gleichen vmware Link gepostet ;-)

                      Nur bei Dir war es ein Erfolg…

                      Adapter: Fritzbox, Unify Circuit
                      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        simpixo
                        schrieb am zuletzt editiert von
                        #11

                        @ruhr70:

                        Werde wohl noch irgendwo was einstellen müssen. Wir haben doch beide einen NUC oder? `

                        Leider nein… ich habe momentan einen ausgedienten SFF PC (HP Compaq 8000 Elite Small Form Factor-PC) als ESXi laufen.

                        Gruß

                        Adrian

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        522

                        Online

                        32.5k

                        Benutzer

                        81.7k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe