2016-04-21 4 views
3

Ich schreibe Win32 API (C++) Code, um ein Netzwerk nach bestimmten Informationen abzufragen. Eine dieser Informationen ist die Endzeit des DHCP-Leases. Ich war in der Lage, die meisten Informationen zu bekommen, die ich von den Funktionen GetIpNetTable (und/oder GetIpNetTable2) benötigte; aber nach vielen Suchen von Google, MSDN, Stackoverflow kann ich keine Möglichkeit finden, alle Leasing-Informationen von einem beliebigen Client zu erhalten (dieser Code läuft nicht auf dem Server). Ich bin mit der Funktion GetAdaptersInfo vertraut, die jedoch nur Informationen für die aktuelle Maschine abruft, nicht alle Maschinen im Netzwerk. Kennt jemand eine Möglichkeit, alle DHCP-Leaseinformationen eines Netzwerks von einem beliebigen Client aus zuzuordnen?Wie finden Sie DHCP-Leaseinformationen von einem beliebigen Client?

+1

Ein Computer kann Leasinginformationen für einen anderen Computer nicht abrufen. Nur der DHCP-Server verfügt über diese Informationen, und jeder Computer kennt nur seine eigenen Leases. Das DHCP-Protokoll enthält keine Informationen zum Abrufen von Informationen zu den Leases eines anderen Computers. Sie müssten auf jedem Rechner Ihre eigene Software ausführen, dann eine Verbindung zu dieser Software herstellen und sie über die Leases des lokalen Rechners informieren. –

Antwort

1

Sie können dies tun, indem Sie einen schreibgeschützten DHCP-Server implementieren. Die Clients senden eine DHCPDISCOVER-Nachricht als Broadcast (an UDP-Port 67), die Sie empfangen können. Der antwortende DHCP-Server sendet das DHCPOFFER einschließlich der MAC-Adresse des Clients, der relevanten IP-Informationen und der Lease-Zeit zurück. Wenn der Client diese Einstellungen akzeptiert, sendet er jetzt eine DHCPREQUEST-Nachricht, sodass Ihr schreibgeschützter Server weiß, dass der Client die DHCPOFFER-Informationen verwenden wird. Sie können die DHPCACK-Bestätigung vom Server nicht sehen, aber wenn etwas für den Client fehlschlägt, wird ein neuer DHCPDISCOVER gesendet. Auf diese Weise können Sie eine Tabelle mit DHCP-Informationen einschließlich Lease-Zeiten für lokale Clients erstellen.

Verwandte Themen