Gibt es eine Methode, um kontinuierlich die Erkennung, wenn Netzwerk-router DHCP unterstützt, die mithilfe von C/C++?
-
05-07-2019 - |
Frage
Es ist ein Szenario, in dem eine Anwendung sagt, ein Gerät in einem Netzwerk zu bekommen, Ihre IP-Adresse von Netzwerk-router DHCP-server.Wenn ein DHCP-server nicht verfügbar ist, wird das Verhalten des Geräts fehlerhaft ist.Gibt es eine Methode, um kontinuierlich zu erkennen, wenn die Netzwerk-router DHCP unterstützt?Oder ist das etwas, was das Gerät benötigt, um zu tun, wenn Sie versuchen, um seine IP-Adresse vom DHCP-server?
Lösung
DHCP-client auf dem Gerät macht genau das.Naja, fast.
Der DHCP DISCOVERY message broadcast auf den link.Dann, wenn es keine DHCP-Server bereit, zu dienen dieser bestimmten MAC-Adresse, die jedem behält sich eine IP-Adresse aus seinem pool, und Sie Antworten mit ANGEBOT Nachricht.Der client nimmt dann auf welchen server es will, zu "binden" und zu Fragen der REQUEST-Nachricht.Der server bestätigt den erteilten lease der IP-Adresse mit einer ACK-Nachricht.
Der client ermittelt die "nicht-Verfügbarkeit" von DHCP-Server, indem Sie einfach timing und warten auf Angebote.
Werfen Sie einen Blick auf die DHCPing Projekt.Vielleicht geben Ihnen ein paar Ideen.
Links zu den DHCP-RFCs:
RFC 2131, Dynamic Host Configuration Protocol
RFC 2132 DHCP-Optionen und BOOTP-Erweiterungen des Herstellers
Andere Tipps
Ich war etwas entlang der Linien von dieser Windows- DHCP-C-API .