Domanda

Voglio creare un socket per l'accesso ai pacchetti IPv4 dal livello di collegamento dati. Da Unix programmazione di rete V1,

socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP))

1) Io sono l'attuazione di un client DHCP, è questo il modo corretto di fare questo? (Significa senza accedere livello di collegamento dati, non posso ricevere risposta dal server DHCP) o c'è altro modo più semplice? anche, dal momento che questa presa riceverà tutti i pacchetti IPv4 destinati per il mio sistema, come devo distinguere DHCP pacchetto di risposta da altri pacchetti?

2) per favore mi suggeriscono un buon collegamento / tuorial per programmazione di rete con accesso a livello di collegamento dati . Nel libro di cui sopra, non è dettagliata descrizione.

Questa è codice mio

È stato utile?

Soluzione

Avete bisogno le intestazioni link layer troppo? Se è così, è necessario utilizzare SOCK_RAW-SOCK_DGRAM rimuoverà l'intestazione livello di collegamento prima dell'alimentazione alla vostra applicazione.

È possibile identificare le richieste DHCP da parte delle porte di origine e di destinazione, in quanto DHCP genera traffico sulle porte UDP 67 e 68.

Altri suggerimenti

Forse si è tentato guardando le librerie PCAP? Fornisce funzioni di filtraggio belle su IP, la porta e le altre cose.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top