Frage

Ich möchte eine Buchse schaffen für den Zugriff auf IPv4-Pakete von Datenverbindungsschicht. Von Unix Netzwerkprogrammierung V1,

socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP))

1) Ich einen DHCP-Client bin die Umsetzung, dann ist dies der richtige Weg, dies zu tun? (Mittel ohne Datenverbindungsschicht zugreifen, kann ich nicht die Antwort vom DHCP-Server empfängt) oder gibt es eine andere Art und Weise einfacher? auch, da diese Buchse all IPv4-Pakete für mein System bestimmt empfangen werden, wie soll ich unterscheiden DHCP-Antwort-Paket von anderen Paketen?

2) Bitte machen Sie mir einen guten Link / tuorial für Netzwerkprogrammierung mit Data Link Layer-Zugriff . In dem obigen Buch, es ist nicht eine detaillierte Beschreibung.

Dies ist meinen Code

War es hilfreich?

Lösung

Sie benötigen die Verbindungsschicht zu Header? Wenn ja, müssen Sie SOCK_RAW-SOCK_DGRAM verwenden, wird der Link-Layer-Header entfernen, bevor es auf Ihre Anwendung zugeführt wird.

Sie können DHCP-Anforderungen identifizieren durch die Quell- und Ziel-Ports, da DHCP-Datenverkehr auf UDP-Ports 67 und 68 erzeugt.

Andere Tipps

Haben Sie versucht, bei PCAP Bibliotheken suchen? Es bietet schöner Filterfunktionen auf IP, Port und anderen Dingen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top