Rufen Sie alle IP-Adressen ab, die vom DHCP-Server mit dnsmasq und hostapd vergeben wurden

2488
Shan-Desai

Ich habe einen systemdDienst für die hostapdAnwendung auf Raspbian Jessie Lite erstellt . Der Quellcode ist diesem GitHub Gist ähnlich, jedoch mit IP-Adressen im 192.168.50.x/24.

Alles funktioniert und verschiedene Geräte erhalten IP-Adressen vom DHCP-Server. Ich weiß jedoch nicht, ob es ein Protokoll aller IP-Adressen gibt, die den Clients in Bezug auf ihre MAC-Adressen für dnsmasqund / oder mitgeteilt wurden hostapd.

Gibt es eine Möglichkeit, die ausgehändigten IP-Adressen des DHCP-Servers aufzulösen? Vielleicht sind sie in einer Datei angemeldet, die mir nicht bekannt ist. Im Ausführlichkeitsmodus sehe ich zum Beispiel Nachrichten, wenn ein Client eine IP-Adresse anfordert, und daher die Annahme, dass diese Informationen möglicherweise in der Datei angemeldet sind.

0

2 Antworten auf die Frage

2
Ross

Ich glaube, dass /var/lib/misc/dnsmasq.leases die gewünschte Datei ist

Wenn nicht, dann verwenden Sie dhcp-script = und schreiben Sie Ihre eigene Manpage

Beim Start liest dnsmasq /etc/dnsmasq.conf. Das Format dieser Datei besteht aus einer Option pro Zeile, genau wie die langen Optionen im Abschnitt OPTIONS, jedoch ohne das führende "-".

--dhcp-script = Wenn eine neue DHCP-Lease erstellt, eine alte zerstört oder eine TFTP-Dateiübertragung abgeschlossen wird, wird die durch diese Option angegebene ausführbare Datei ausgeführt. muss ein absoluter Pfadname sein, es findet keine PFAD-Suche statt. Die Argumente für den Prozess sind "add", "old" oder "del", die MAC-Adresse des Hosts (oder DUID für IPv6), die IP-Adresse und, falls bekannt, der Hostname. "Hinzufügen" bedeutet, dass ein Leasingvertrag erstellt wurde, "del" bedeutet, dass es zerstört wurde, "alt" ist eine Benachrichtigung über einen vorhandenen Leasingvertrag beim Start von dnsmasq oder eine Änderung der MAC-Adresse oder des Hostnamens eines vorhandenen Leasingvertrags (auch Länge des Leasingvertrags oder Ablauf und Client-ID, wenn Leasefile-Ro gesetzt ist). Wenn die MAC-Adresse von einem anderen Netzwerktyp als Ethernet stammt, wird der Netzwerktyp vorangestellt, z. B. "06-01: 23: 45: 67: 89: ab". für Token Ring. Der Prozess wird als root ausgeführt (vorausgesetzt, dass dnsmasq ursprünglich als root ausgeführt wurde), auch wenn dnsmasq so konfiguriert ist, dass die UID in einen nicht privilegierten Benutzer geändert wird.

2
Darren

Als Nachtrag zu Ross 'Antwort können Sie die Lease-Datei in Ihrer dnsmasq.conf(oder Conf-Datei in /etc/dnsmasq.d) Datei mit der Option angeben dhcp-leasefile=<lease file>. Z.Bdhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases

Auch wenn die Lease-Datei in einigen Fällen mit Hostnamen gefüllt wird, können einige zufällige Geräte wie Tablets oder Smart-TVs in der Lease-Datei nicht eindeutig identifiziert werden. In Ihrem dnsmasq-conf können Sie dhcp-host-Optionen mit der MAC-Adresse des Geräts und einem angezeigten Hostnamen hinzufügen, der in der Leases-Datei angezeigt wird. Z.B

dhcp-host=10:08:c1:08:9d:53,LG-TV 

in dnsmaq.confwie folgt aussehen in der Leases - Datei:

1502229042 10:08:c1:08:9d:53 192.168.10.94 LG-TV *