sendouda
Messages postés41Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention13 décembre 2008
-
16 mai 2006 à 17:46
turnerom
Messages postés492Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention12 janvier 2012
-
17 mai 2006 à 08:40
salut tout le monde;
j'essaie d'envoyer des paquets TCP avec sock raw il n' ya pas d'erreurs mais je ne les capte pas avec le sniffer Ethereal.
Ce même programme marchait avec UDP et ICMP.Je veux remplir les champs des entêtes IP et TCP moi même c'est pour ça que j'utilise sock raw!!
Est ce que c'est un problème au niveau des sockets?
Voici une partie du programme en MFC.
char packet[8192];
iphdr *ip=(iphdr*)packet;
tcphdr *tcp=(tcphdr*)(packet+sizeof(struct iphdr));
ip->verlen=79;//différent de 79 car il n'y a pas le champ option
ip->tos=0;
ip->id=1;
ip->offset=0;
ip->ttl=(unsigned char)255;
ip->protocol=0x06;
UpdateData(TRUE);
ip->saddr=inet_addr(m_ipsource); //remplacez par votre ip...
ip->daddr=inet_addr(m_ip); //remplacez par le pc à pinger
//champ option
ip->code=7;
ip->lenopt=39;//au max on peut insérer 9 adresses ip
turnerom
Messages postés492Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention12 janvier 20121 17 mai 2006 à 08:40
si je ne m'abuse sendto(sock,packet,sizeof(struct iphdr)+sizeof(struct tcphdr),0,(SOCKADDR*)&sin,sizeof(sin)); c'est pour le protocole udp.
Ca m'etonne meme que ca compile.
Essaye avec send(sock,&packet[0],1,0); mais peut-etre est-ce différent pour les sock RAW TCP que je ne connais pas, mais ca m'etonnerai.