begin process at 2012 02 11 19:24:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

MFC

 > 

Comment faire un Ping


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

Comment faire un Ping

jeudi 19 avril 2007 à 00:21:36 | Comment faire un Ping

myckie

 Bonjour, voila la question est dans le sujet, je cherche a pinger une machine le plus simplement possible et récupérer le resultat du ping en MFC j'ai vu quelque exemple de code mais a vrai dire j'ai rien compris donc si quelqu'un a un exemple de code simple ou un tuto se serai super

merci d'avance
jeudi 19 avril 2007 à 12:30:37 | Re : Comment faire un Ping

magma







Exemple non MFC:

// ping2.c

#include <winsock2.h>  //Linker ws2_32.lib
#include <icmpapi.h>   //Linker iphlpapi.lib
#include <stdio.h>

int main(int argc, char **argv)
{
  IP_OPTION_INFORMATION ioi;
  ICMP_ECHO_REPLY       ier;
  LPHOSTENT             Host;
  WSADATA               wsaData;
  IN_ADDR               iaAddr;
  HANDLE                hIcmp;
  int                   i;

  if(argc != 2) {
    printf("\nUsage: %s IP_ou_DNS\n", argv[0]);
    return 1;
  }

  if(WSAStartup(MAKEWORD(2, 2), &wsaData)) {
    printf("\nErreur: WSAStartup() !\n");
    WSACleanup();
    return 1;
  }

  iaAddr.s_addr = inet_addr(argv[1]);

  if(iaAddr.s_addr == INADDR_NONE)
    Host = gethostbyname(argv[1]);
  else
    Host = gethostbyaddr((char *)&iaAddr,
                         sizeof(IN_ADDR),
                         AF_INET);
  if(!Host) {
    printf("\nErreur: IP ou DNS non valide !\n");
    WSACleanup();
    return 1;
  }

  printf("\nPing vers...\n IP : %s\n DNS: %s\n",
         inet_ntoa((*(LPIN_ADDR)Host->h_addr_list[0])),
         Host->h_name);

  hIcmp = IcmpCreateFile();

  for(i = 0; i < 4; i++) {
    ioi.Ttl         = 255;
    ioi.Tos         = 0;
    ioi.Flags       = 0;
    ioi.OptionsSize = 0;
    ioi.OptionsData = NULL;

    IcmpSendEcho(hIcmp,
                 *(DWORD *)(*Host->h_addr_list),
                 NULL,
                 0,
                 &ioi,
                 &ier,
                 sizeof(ICMP_ECHO_REPLY),
                 5000);

    if(ier.Status) {
      printf("\nErreur: %ld !", ier.Status);
      break;
    }

    iaAddr.s_addr = ier.Address;

    printf("\nR\202ponse de %s  RTT=%ldms  TTL=%d",
           inet_ntoa(iaAddr),
           ier.RoundTripTime,
           ier.Options.Ttl);
  }

  printf("\n");
  IcmpCloseHandle(hIcmp);
  WSACleanup();
  return 0;
}


Résultat:

C:\>ping2 cppfrance.com

Ping vers...
 IP : 213.161.194.215
 DNS: cppfrance.com

Réponse de 213.161.194.215  RTT=61ms  TTL=57
Réponse de 213.161.194.215  RTT=62ms  TTL=57
Réponse de 213.161.194.215  RTT=60ms  TTL=57
Réponse de 213.161.194.215  RTT=62ms  TTL=57

C:\>ping2 213.161.194.215

Ping vers...
 IP : 213.161.194.215
 DNS: lbcs.webnext.com

Réponse de 213.161.194.215  RTT=58ms  TTL=57
Réponse de 213.161.194.215  RTT=62ms  TTL=57
Réponse de 213.161.194.215  RTT=61ms  TTL=57
Réponse de 213.161.194.215  RTT=62ms  TTL=57

C:\>


 

jeudi 19 avril 2007 à 16:20:49 | Re : Comment faire un Ping

myckie

Merci beaucoup magma je vais essayer de refaire le code en MFC


Cette discussion est classée dans : code, exemple, ping


Répondre à ce message

Sujets en rapport avec ce message

C++ Visual basic [ par frail ] salut,j'suis désespéréj'essaye depuis un moment déjà de traduire du code vb en code c++j'ai vu un exemple avec des API(exemple avec des constantes mai getch() [ par mage_des_enfers ] Bon voilà j'ai voulu voir comment je pouvais faire avec switch pour faire que si tu appuies sur la flèche gauche par exemple sa fasse quelque chose. D code d'accés [ par salim_samir ] salut à tous j'ai réaliser un programme sous microcontroleur 68HC811E2 qui est commander par une clavier 12 touches, et je veut protéger ce programme PING->explications [ par JCpp ] Je voudrais des explications sur le PING.Parement c'est plus compliqué ce que je pence, il y a : TTL ?Le PING ne comporte pas de PORTPeux ton lire le Ping et mise à jour dns [ par Cuty74 ] Bonjour à tous,je suis un débutant en programmation et je misere sur un sujet.J'ai comme projet de faire un logiciel qui ping une adresse ip, et si ce Combinaison de deux touches [ par fredsor ] Bonjour,A l'aide de divers exemples trouvé ça et là sur ce fabuleux site, je pensais que mon code allait fonctionner, malheureusement non...Je m'expli Exemple de merge [ par ludo217 ] Bonjour,Je suis à la recherche d'un exemple de merge (2 fichiers à merger) où il y aurait conflit (même portion de code modifiée) afin de former des p Borland C++ Builder 2009 et TIdIcmpClient pour un ping [ par jhx76 ] Bonjour a tous :) Voila, dans le cadre d'un gros projet, je dois implémenter une fonction de ping pour vérifier la présence des servers communiquant Besoin d'aide [ par yoda59113 ] Bonjour , ou plutôt bonsoir vu l'heure ^^ Je commence à apprendre à programmer en C++ et j'aurai besoin d'un code source pour créer un programme où il faire des Multi-threads ? [ par Adict ] Bonjours j'aurais besoin d'aide car je ne comprend pas vraiment comment faire des multi thread.. un ok mais plusieurs [^^mad5] pour faire un thread n


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 : 0,577 sec (3)

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