Il te faudrait lire un bon livre sur la programmation avancée sous Unix, et lire attentivement les pages de man et le code source de certains appels du noyau.
Personnellement je ne me lancerais pas dans la programmation des raw sockets avant d'eplucher très attentivement la documentation et le code source. Il existe des livres et des forums dédiés au noyau et/ou à ses couches réseaux.
Regards aussi dans le source de codes existants utilisant SOCKET_RAW
Par ailleurs il y a probablement une interaction entre les iptables et les raw sockets, et le filtrage ou autre que tu essaies de faire est peut-être accessible par les iptables.
Il me semble que les raw sockets sont bien moins normalisés que les sockets (voir peut-être [
www.opengroup.org] ou ailleurs). Mais je dois avouer que je n'ai jamais codé du raw socket (juste du code utilisant UDP/IP & TCP/IP). Si tu y tiens vraiement, plonges toi assidument dans la documentation et dans le code source du noyau, et demande probablement ailleurs...
Le port 53 est celui du DNS. Essaies tu de coder un serveur DNS? Pourquoi ne pas utiliser ceux existants, ou au moins s'en inspirer?
Bref, tu n'as pas expliqué en détails ton véritable objectif, et il est probable que ta question soit trop technique ici.
En plus, si tu bogues sur le protocole DNS à un niveau si bas, tu risques t'empoisonner le réseau où tu es connecté (ou celui de ton FAI). Avant de m'y risquer, à ta place, je demanderais de l'aide et l'accord des adnministrateurs réseaux concernés.
Es tu déjà bien à l'aise avec les sockets, les protocoles réseaux (IP, UDP, TCP, ..), les services (DNS, ...)?
J'ai vraiement du mal à deviner ce que tu veux véritablement faire et pourquoi tu essaies comme ça....
J'espère que tu n'essaies pas de coder quelque chose de bizarre ou d'illicite.... ?-(
----
Basile STARYNKEVITCH
Membre de l'
APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!
Projet logiciel libre:
RefPerSys