(M)  s i s t e m a   o p e r a c i o n a l   m a g n u x   l i n u x ~/ · documentação · suporte · sobre

  Página seguinte Página anterior Índice

395. Acesso ao dispositivo bruto Ethernet

Como consigo acesso ao dispositivo bruto Ethernet no linux, sem atravessar o TCP/IP e amigos?

        int s=socket(AF_INET,SOCK_PACKET,htons(ETH_P_ALL));

Isto dá a você um socket para receber todos os tipos de protocolo. Faça chamadas recvfrom() para ele e ele preencherá o sockaddr com tipo de dispositivo em sa_família e o nome do dispositivo na série sa_data. Eu não sei quem originariamente inventou SOCK_PACKET para Linux (já existe há décadas) mas é coisa boa para valer. Você pode usá-lo para enviar coisas brutas também via chamadas sendto(). Você tem que ser superusuário para qualquer um dos dois, é claro.


Página seguinte Página anterior Índice