Pinguer une machine en c#

Signaler
Messages postés
778
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
-
Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
10 février 2009
-
Bonjour,

J'aimerais savoir s'il etait possible de pinguer une machine en c# v1.1 (vs.net 2003) et si oui comment je peux faire cela !

Je vous remercie

Bonne semaine
Christophe

5 réponses

Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
10 février 2009
2
Salut si tu veux pinger la machine par son adresse IP tu peux utiliser la méthode IcmpSendEcho de la dll icmp.dll
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
Une autre solution, passe par la classe Processus et utilises l'outil en ligne de commande "Ping.exe".
Messages postés
778
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008

salut salut,

T_barbillon => ok je vais essayer je connais pas du tout cette icmp.dll
                        Je vous tiens au courant.

Lutinore => ouais ok je vois ce que tu veux dire mais tu vois je voudrais recuperer si le ping est ok ou pas et avec l'executable ca ne sera pas possible !

Je vous remercie
Christophe
Un bouillonnais
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
3
slt jimmy regarde du coté de la class PING dans System.Net.NetworkInformation tu devrais y trouver ton bonheur
Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
10 février 2009
2
Salut,
Pour yanis7518 : il me semble que la classe Ping n'existe pas en 1.1
Pour lutinore : c'est vrai que ta solutoion est beaucoup plus simple ;)
Pour jimmy69 : le principe est simple :

//Ouverture de l'espace icmp
    IntPtr IcmpPtr = IcmpCreateFile();
   
//Paramétrage par défaut des options
    ICMP_OPTIONS ICMPOptions = new ICMP_OPTIONS();
    ICMP_ECHO_REPLY ICMPReply = new ICMP_ECHO_REPLY();
    ICMPOptions.Ttl = 255;
    int TimeOut = 45;

    //Resolution de l'adresse string -> int
    int IpPtr = (int)inet_addr(IPAddress);
    string sData = "x";

    //Exécution du ping
    int RepliesCount = IcmpSendEcho(
                                IcmpPtr, IpPtr, sData, sData.Length,
                                ref ICMPOptions, ref ICMPReply,
                                Marshal.SizeOf(ICMPReply), TimeOut);

   
    int HResult = 0;    if (RepliesCount 0) {HResult Marshal.GetLastWin32Error();}

//Fermeture de l'espace icmp
    IcmpCloseHandle(IcmpPtr);