IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[socket RAW] sendto ne marche pas !


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Points : 59
    Points
    59
    Par défaut [socket RAW] sendto ne marche pas !
    salut tout le monde,

    mon appli utilise les socket en mode RAW. j'utilise IP et ICMP pour envoyer des données et surtout en recevoir(c'est l'objectif).

    Cependant quand j'écoute avec Ethereal (sniffer) et que je lance mon programme je n'ai aucunne donnée transmise???!!!!

    voila un bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    struct sockaddr_in IP_sock_info;
    int tailleSocket = sizeof(sockaddr_in);
     
    WSADATA WSAData; 			       	
    WSAStartup(MAKEWORD(2,2), &WSAData);
     
    socketRaw = socket(AF_INET,SOCK_RAW,IPPROTO_ICMP);
     
    IP_sock_info.sin_family = AF_INET;
    IP_sock_info.sin_addr.s_addr = inet_addr("127.0.0.1");
     
    //Avant cela j'ai déclaré deux structures entete IP et entete ICMP et je les ai initialisées.
     
    IP_HEADER *pIPEntete;	// Déclare un pointeur sur la stucture IP_HEADER. */
    pIPEntete=&ipEntete;	// Initialisation du pointeur
    sendto(socketRaw, (char *)pIPEntete, 36, 0, (struct sockaddr *)&IP_sock_info, tailleSocket);
    voila le code utilisé pour "envoyer" des données avec les socket RAW.

    Note: le sendto me revoie la valeur 36 et apres cela j'ai fait un WSAGetLastError() qui me renvoi la valeur 6!!!

    si quelqu'un comprend pourquoi rien n'est envoyé, je suis preneur.
    Visual Studio .net 2003

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    T'aurais pas XP SP2 + firewall par hasard ?

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    En effet, j'ai bien XP avec service pack 2. Mais le firewall d'XP est désactivé, de plus je n'ai pas d'autre firewall. Je suis bien connecté en administrateur.

    Je sais que le service pack deux merde sur pas mal de points mais la question est bloque-t-il aussi les RAW sockets????
    Visual Studio .net 2003

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Le firewall a introduit des limitations volontaires pour empêcher qu'un ordi XP SP2 envoie des paquets "malicieux". Ca concerne surtout les sokets RAW. Mais j'ai jamais pris le temps de tester tout ça.
    Je crois qu'il faut désactiver le service "Pare-feu Windows" et pas simplement le firewall. Essaye après l'avoir arrêté.
    Sinon, si c'est pour faire un ping, y'a une autre possibilité que les sockets RAW (IcmpSendEcho...).

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    salut Aurelien, et merci pour ton aide.

    j'ai désactivé le service du pare feu, puis j'a testé mon appli et la je sniff toujours rien en sortie!

    Je ne comprend pas ce qu'il se passe car mon code me parrait pas trop mal.

    Y aurait il moyen de t'envoyer mes sources pour les tester ... ?

    Note : Le prog que je réalise devra avoir la meme fonctionalité que la commande tracert sous dos. C'est a dire que j'incrémente de 1 le TTL apres avoir recu une réponse.

    Mais pour le moment je suis eulement a l'étape ou je tente d'envoyer des donnée au travers de mon sendto et de ma RAW socket
    Visual Studio .net 2003

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de socket marche pas?
    Par doommick31 dans le forum Réseau
    Réponses: 13
    Dernier message: 13/05/2007, 13h59
  2. sendto:Permission Denied (socket raw)
    Par olbat dans le forum Réseau
    Réponses: 20
    Dernier message: 06/10/2006, 23h15
  3. Socket, recv et select qui ne marche pas
    Par Zapan dans le forum Réseau
    Réponses: 18
    Dernier message: 30/06/2006, 20h19
  4. Socket qui ne marche pas
    Par Guillaume602 dans le forum C++
    Réponses: 4
    Dernier message: 15/01/2006, 14h07
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo