begin process at 2012 02 11 20:46:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

RAW SOCKET - IP - Sendto() - Erreur 'WSAEADDRNOTAVAIL'


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

RAW SOCKET - IP - Sendto() - Erreur 'WSAEADDRNOTAVAIL'

dimanche 14 septembre 2003 à 17:53:24 | RAW SOCKET - IP - Sendto() - Erreur 'WSAEADDRNOTAVAIL'

dark1933

Salut à tous,

J'essaye désespérément d'envoyer un Ping en forgeant le datagramme IP adéquat.

J'obtiens l'erreur "WSAEADDRNOTAVAIL" au moment de l'appel de la fonction Sendto() :

Cannot assign requested address.
The requested address is not valid in its context.
This normally results from an attempt to bind to an address that is not valid for the local computer.
This can also result from connect, sendto, WSAConnect, WSAJoinLeaf, or WSASendTo when the remote address or port is not valid for a remote computer (for example, address or port 0).



===========================================================================
Voici les étapes importantes de la procedure :

// Initialisation des structure ICMP et IP

ICMP_HEADER->Type=8;
ICMP_HEADER->Code=0;
ICMP_HEADER->ID=1;
ICMP_HEADER->SEQ=1;
ICMP_HEADER->Checksum=0;
memcpy(&ICMP_HEADER->ICMP_DATA,"12345678",8);
ICMP_HEADER->Checksum=CALCUL_CHECKSUM((unsigned short *)ICMP_HEADER,8);

IP_HEADER->VS_LET=69;
IP_HEADER->TOS=0;
IP_HEADER->Size=htons(36);
IP_HEADER->ID=htons(16);
IP_HEADER->Flags=2;
IP_HEADER->Offset=0;
IP_HEADER->TTL=255;
IP_HEADER->Proto=1;
IP_HEADER->Checksum=0;
IP_HEADER->IP_S=inet_addr("82.64.7.233"); // mon ip lors des essais
IP_HEADER->IP_D=inet_addr("216.239.59.99"); // ip de Google.fr
memcpy(&IP_HEADER->IP_DATA,&ICMP_HEADER,8);
IP_HEADER->Checksum=CALCUL_CHECKSUM((unsigned short *)IP_HEADER,10);


// Création de la RAW SOCKET

Socket_IP=socket(AF_INET,SOCK_RAW,IPPROTO_RAW);


// Modification des options pour pouvoir manipuler l'entête IP

setsockopt(Socket_IP, IPPROTO_IP, 2, (char *) &optval, sizeof(optval));


// Initialisation de la structure SOCKADDR_IN

ip_sock_info.sin_family=AF_INET;
ip_sock_info.sin_addr.s_addr=inet_addr("216.239.59.99");
ip_sock_info.sin_port=htons(7); // le n° de port n'intervient, mais on ne sait jamais
memset(&ip_sock_info.sin_zero,0x0,8);


// envoit des données => et là se produit l'erreur

sendto(Socket_IP,(char*)IP_HEADER,36,0,(struct sockaddr *)&ip_sock_info,sizeof(struct sockaddr_in))
mercredi 1 mars 2006 à 11:29:31 | Re : RAW SOCKET - IP - Sendto() - Erreur 'WSAEADDRNOTAVAIL'

MisterDa2

Salut j'ai un pb très proche du tiens, l'as tu reussi à le résoudre ?


merci d'avance


Cette discussion est classée dans : icmp, ip, socket, header, checksum


Répondre à ce message

Sujets en rapport avec ce message

RAW SOCKET - IP - ICMP - Ping [ par dark1933 ] Salut à tous,Voici le code d'un programme qui envoye un ping (ici à Google), mais ne reçoit aucune réponse.La socket utilisée est du type : socket(AF_ socket RAW ICMP - fonctionnement et implémentation... [ par smirnoff69ice ] Salut, Je suis sur un projet et je dois simuler l'envoi de paquets ICMP sur le réseau. J'ai déjà fait un petit programme de test (repris en partie dep pb lors de l'envoie de donnée avec les sockets [ par poporiding ] bonjour tout le monde. Je me galère vraiment sur la création d'un programme qui envoie des socket en mode RAW. j'ai un ensemble d'erreur, capturé Thread socket icmp [ par ghanmi04_05 ] Bonjour j'ai un programme qui lance des threads de contrôle des interfaces réseaux disponible sur une machine quelconque(windows). Si je lance une fo Socket RAW IPPROTO_ICMP et thread [ par ags_squale ] Bonjour,J'essaie de développer un petit module qui 'pingue'  des équipements de manière simultanée. Je suis sous linux 2.6 - mandriva.Pour cela je lan CRC trame UDP ( Prise de tête ... :( ) [ par Booster ] Bonjour à tous,Alors voilà je fais de la redirection de trame. Le problème est que lorsque je change l'ip de destination du cou le CRC doit aussi chan [ C ] Socket en C avec DynDNS ou NO-IP [ par Nostaroth ] Bonjour, j'ai essayé de modifier le code suivant information_sur_la_destination.sin_addr.s_addr=inet_addr("10.10.10.10"); < winsock raw socket ping icmp recv [ par 4aBestWord ] bonjour,j'ai repris un code source en c pour faire un un ping icmp en utilisant les raw sockets sous windows (XP). L'envoie du ping fontionne bien par programmation socket [ par hanaw ] Comment écrire un programme simple communication client serveur en TCP/IP en C qui retourne au serveur un message contenant l'adresse IP du client. bonjour j'ai un problème dans un code ping implémenter avec le c++, que je n'arrive pas à résoudre. s'il vous plait aider moi. Merci d'avance. [ par talelham ] bonjour j'ai un problème dans un code ping implémenter avec le c++, que je n'arrive pas à résoudre. s'il vous plait aider moi. Merci d'avance. voilà


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,557 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales