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

Développement Discussion :

Envoyer un message icmp (Echo Request)


Sujet :

Développement

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 10
    Points : 10
    Points
    10
    Par défaut [RESOLU] Envoyer un message icmp (Echo Request)
    Bonjour,

    Je dois réaliser un "ping" sous C++ builder 6 sans utiliser ce qui existe déjà.
    Je dois donc envoyer un message ICMP de type Echo Request par un socket et récupérer le message Echo Reply.
    Mais voilà je n'arrive pas à créer ce message ICMP à envoyer.

    Si quelqu'un pouvait m'aider cela me permettrait d'avancer un peu dans mon travail.

    merci
    Isabelle

  2. #2
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    Il fo utiliser des raw sockets. Ce soir suis desolé g pas trop le temps d'epiloguer sur le comment de la methode mais je vais te donner une addresse tres reussi sur le sujet
    http://www.madchat.org/netadm/win.nt...rammation.html

    Si tu arrive pas reposte j'essayerai de te donner des complements demain

    ZUL

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Merci pour ton lien, il m'a été très utile.
    Une dernière petite question.

    Lors d'un envoi d'Echo Request il ya un Echo Reply qui se lance automatiquement. Pour le recevoir je dois utiliser un recvfrom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int recvfrom (
    
        SOCKET s,	
        char FAR* buf,	
        int len,	
        int flags,	
        struct sockaddr FAR* from,	
        int FAR* fromlen	
       );
    Je n'arrive pas à comprendre ce que je dois mettre en 2° et 3° paramètres.
    Peux-tu m'aider ?

    merci
    Isa

  4. #4
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    recv marche ainsi.
    Il ecoute la socket s(arg1), attendant une reponse venant de arg5. Il stocke les arg3 premiers bits recus dans arg2.

    Concretement arg2 est le buffer ou il va stocké les données k'il va recevoir. arg 3 est la taille des données k'il va stocké (dois tjs etre inferieur a sizeof(buffer).

    En gros pour le code ki t'interesse, tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char * buffer =(char*) malloc (sizeof(IP_header)+sizeof(IMCP_header)+1);
    recvfrom (tasock,buffer,sizeof(IP_Header)+sizeof(IMCP_header),0,l'addresse ke tu ecoute,sizeof(sockaddr_in);
    tu as a ce moment a par faute de code recu ton packet,enfin ce ki t'interesse dans buffer. Tu as plus k'a caster les structures d'ip_header et d'imcp_header pour pouvoir recup les champs ki tinteressent.

    ZUL

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Merci bcp pour ton aide et tes explications.
    J'ai réussi à faire mon ping sous protocole UDP.

    Isabelle

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 26
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par ovdz
    J'ai réussi à faire mon ping sous protocole UDP.
    Isabelle
    Tu n'as pas utilisé UDP pour faire ton ping, mais simplement icmp. UDP n'a rien avoir avec les paquets icmp et ping.

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

Discussions similaires

  1. Envoyer ping (ICMP echo request) mikroPascal
    Par Formyx dans le forum MPLAB
    Réponses: 0
    Dernier message: 20/03/2014, 12h23
  2. message ICMP Echo et Reply
    Par JQueen dans le forum Protocoles
    Réponses: 1
    Dernier message: 09/12/2009, 08h43
  3. Réponses: 4
    Dernier message: 28/03/2005, 19h42
  4. [ServerSocket] Envoyer un message vers un client
    Par Michel_57 dans le forum Web & réseau
    Réponses: 4
    Dernier message: 06/08/2004, 23h01

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