Question

Je veux créer une socket pour accéder à des paquets IPv4 de couche de liaison de données. De V1 de programmation réseau unix,

socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP))

1) Je suis un client de la mise en œuvre dhcp, est-ce la bonne façon de le faire? (Moyens sans accéder à la couche de liaison de données, je ne peux pas recevoir de réponse du serveur dhcp) ou est-il un autre moyen plus facile? aussi, puisque cette prise recevra tous les paquets IPv4 destinés à mon système, comment dois-je distinguer paquet de réponse de dhcp d'autres paquets?

2) s'il vous plaît me suggérer un bon lien / tuorial pour programmation réseau avec accès à la couche de liaison de données . Dans le livre ci-dessus, il n'est pas une description détaillée.

mon code

Était-ce utile?

La solution

Avez-vous besoin aussi les en-têtes de couche de liaison? Si oui, vous devez utiliser SOCK_RAW-SOCK_DGRAM va supprimer l'en-tête de couche de liaison avant de le nourrir à votre application.

Vous pouvez identifier les requêtes DHCP par les ports source et destination, étant donné que DHCP génère du trafic sur les ports UDP 67 et 68.

Autres conseils

Avez-vous essayé de regarder les bibliothèques PPCE? Il offre des fonctions de filtrage de Nice sur IP, le port et d'autres choses.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top