Pergunta

Quero criar um soquete para acessar pacotes IPv4 na camada de link de dados. De Unix Network Programming V1,

socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP))

1) Estou implementando um cliente DHCP, é a maneira correta de fazer isso? (significa sem acessar a camada de link de dados, não posso receber a resposta do servidor DHCP) ou existe outra maneira mais fácil?Além disso, como este soquete receberá todos os pacotes IPv4 destinados ao meu sistema, como devo distinguir o pacote de resposta DHCP de outros pacotes?

2) Por favor me sugira um bom link/tuorial para Programação de rede com acesso à camada de link de dados. No livro acima, não é uma descrição detalhada.

Isto é meu código

Foi útil?

Solução

Você também precisa dos cabeçalhos da camada de link? Se sim, você precisa usar SOCK_RAWSOCK_DGRAM Removerá o cabeçalho da camada de link antes de alimentá -lo ao seu aplicativo.

Você pode identificar solicitações DHCP pelas portas de origem e destino, pois o DHCP gera tráfego nas portas UDP 67 e 68.

Outras dicas

Você tentou olhar para as bibliotecas do PCAP? Ele fornece boas funções de filtragem em IP, porta e outras coisas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top