2016-06-23 5 views
0

Ich brauche Router-Software zu entwickeln, die so etwas wie dies zeigt (Hinweis: Dieser Beitrag zum Netzwerk-Programmierung ist ähnlich):Wie Client-Daten aus DHCP-Paket extrahieren?

enter image description here

ich DHCP-Pakete durch Wireshark gefangen genommen und festgestellt, dass es alle Details enthält I müssen angezeigt werden. Die Daten sieht wie folgt aus:

enter image description here

ich das gleiche mit dhcpdump und tcpdump-Tools überprüft.

[email protected]:$ sudo dhcpdump -i wlp6s0 

Ein Teil der Produktion Ich bin an ist:

TIME: 2016-06-23 12:20:50.976 
    IP: 10.42.0.1 (b0:c0:90:69:72:57) > 10.42.0.99 (fc:64:ba:1b:40:e5) 
    OP: 2 (BOOTPREPLY) 
HTYPE: 1 (Ethernet) 
    HLEN: 6 
    HOPS: 0 
    XID: e277d896 
    SECS: 0 
FLAGS: 0 
CIADDR: 0.0.0.0 
YIADDR: 10.42.0.99 
SIADDR: 10.42.0.1 
GIADDR: 0.0.0.0 
CHADDR: fc:64:ba:1b:40:e5:00:00:00:00:00:00:00:00:00:00 
SNAME: . 
FNAME: . 
OPTION: 53 ( 1) DHCP message type   5 (DHCPACK) 
OPTION: 54 ( 4) Server identifier   10.42.0.1 
OPTION: 51 ( 4) IP address leasetime  3600 (60m) 
OPTION: 58 ( 4) T1      1800 (30m) 
OPTION: 59 ( 4) T2      3150 (52m30s) 
OPTION: 1 ( 4) Subnet mask    255.255.255.0 
OPTION: 28 ( 4) Broadcast address   10.42.0.255 
OPTION: 6 ( 4) DNS server    10.42.0.1 
OPTION: 3 ( 4) Routers     10.42.0.1 
--------------------------------------------------------------------------- 

Aber ohne diese Werkzeuge zu verwenden (diese Tools nicht auf Routerkarte hinzugefügt werden), wie Client-Daten wie MAC-Adresse zu extrahieren , IP-Adresse und andere Informationen aus Dhcp-Paket (oder wie diese Tools die Informationen extrahiert) programmgesteuert (wenn möglich in C)?

+0

Ist Ihr Router mit Linux? Müssen Sie die gesamte dhcp/DNS/NAT-Funktionalität auf dem Router von Grund auf neu schreiben oder müssen Sie nur die dhcp-Pakete überwachen? –

+0

Ja .. Router unter Linux. Und ja, ich muss Pakete überwachen. Keine Notwendigkeit, von Grund auf neu zu entwickeln. Und ich verstehe nicht, warum diese Frage abgelehnt wird. –

+0

@nayabbashasayed Ein Grund könnte sein, dass es ein bisschen verwirrend ist. Warum haben Sie das Gefühl, dass Sie Pakete überwachen müssen? Die Informationen, die Sie suchen, sind selbstverständlich auf andere Weise verfügbar, abhängig davon, welche Software Sie gerade ausführen. Sehen Sie sich zum Beispiel die Dokumentation für den DHCP-Server an. – unwind

Antwort

0

Unter der Annahme, der DHCP-Server keine Mittel liefern die Informationen, die Sie brauchen, können Sie eine Buchse des Typs verwenden können:

socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL)) 

Mit ihm können Sie alle ETH-Pakete sehen und verarbeiten sie gleiche als Wireshark. Sie benötigen Kenntnisse über OSI-Schichten (ETH2, IP, UDP und DHCP), um die Header und den Inhalt der Pakete zu verarbeiten.

+0

Danke für die Antwort ... Ich werde das versuchen .. –