Acceso a paquetes de capa de enlace de datos
-
22-09-2019 - |
Pregunta
Quiero crear un socket para acceder a los paquetes IPv4 desde la capa de enlace de datos. De UNIX V1 programación de la red,
socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP))
1) Me estoy poniendo en práctica un cliente DHCP, es esta la forma correcta de hacerlo? (Medios sin acceder a la capa de enlace de datos, no puedo recibir respuesta del servidor DHCP) o hay alguna otra manera más fácil? también, ya que esta toma recibirá todos los paquetes IPv4 con destino a mi sistema, ¿cómo debería distinguir paquete de respuesta DHCP de otros paquetes?
2) por favor me sugieren una relación buena / tuorial para programación de la red con acceso a la capa de enlace de datos . En el libro anterior, no se detalla la descripción.
Este es mi código
Solución
¿Es usted necesita las cabeceras de la capa de enlace también? Si es así, usted necesita utilizar SOCK_RAW
-SOCK_DGRAM
eliminará la capa de enlace de cabecera antes de dársela a su aplicación.
Puede identificar las peticiones DHCP por los puertos de origen y destino, ya que DHCP genera tráfico en los puertos UDP 67 y 68.
Otros consejos
¿Usted ha intentado buscar en las bibliotecas PCAP? Proporciona funciones de filtrado agradables sobre IP, puerto y otras cosas.