Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Ping classe

 

Date de publication : novembre 2016

Permet à une application déterminer si un ordinateur distant est accessible sur le réseau.

Espace de noms:   System.Net.NetworkInformation
Assembly:  System (dans System.dll)

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.Net.NetworkInformation.Ping

public class Ping : Component

NomDescription
System_CAPS_pubmethodPing()

Initialise une nouvelle instance de la classe Ping.

NomDescription
System_CAPS_protpropertyCanRaiseEvents

Obtient une valeur indiquant si le composant peut déclencher un événement.(Hérité de Component.)

System_CAPS_pubpropertyContainer

Obtient les IContainer qui contient la Component.(Hérité de Component.)

System_CAPS_protpropertyDesignMode

Obtient une valeur qui indique si la Component est actuellement en mode design.(Hérité de Component.)

System_CAPS_protpropertyEvents

Obtient la liste des gestionnaires d’événements associés à cette Component.(Hérité de Component.)

System_CAPS_pubpropertySite

Obtient ou définit le ISite de la Component.(Hérité de Component.)

NomDescription
System_CAPS_pubmethodCreateObjRef(Type)

Crée un objet qui contient toutes les informations requises pour générer un proxy permettant de communiquer avec un objet distant.(Hérité de MarshalByRefObject.)

System_CAPS_pubmethodDispose()

Libère toutes les ressources utilisées par Component.(Hérité de Component.)

System_CAPS_protmethodDispose(Boolean)

Libère les ressources non managées utilisées par l'objet Ping et supprime éventuellement les ressources managées.(Remplace Component.Dispose(Boolean).)

System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_protmethodFinalize()

Libère les ressources non managées et exécute d'autres opérations de nettoyage avant la récupération du Component par le garbage collection.(Hérité de Component.)

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetLifetimeService()

Récupère l’objet de service de durée de vie actuelle qui contrôle la stratégie de durée de vie de cette instance.(Hérité de MarshalByRefObject.)

System_CAPS_protmethodGetService(Type)

Retourne un objet qui représente un service fourni par Component ou par son Container.(Hérité de Component.)

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_pubmethodInitializeLifetimeService()

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.(Hérité de MarshalByRefObject.)

System_CAPS_protmethodMemberwiseClone()

Crée une copie superficielle du Object actuel.(Hérité de Object.)

System_CAPS_protmethodMemberwiseClone(Boolean)

Crée une copie superficielle d’actuel MarshalByRefObject objet.(Hérité de MarshalByRefObject.)

System_CAPS_protmethodOnPingCompleted(PingCompletedEventArgs)

Déclenche l'événement PingCompleted.

System_CAPS_pubmethodSend(IPAddress)

Tente d’envoyer un message d’écho ICMP Internet Control Message Protocol () sur l’ordinateur qui a spécifié IPAddress, et recevoir un message ICMP de réponse à écho correspondant de cet ordinateur.

System_CAPS_pubmethodSend(IPAddress, Int32)

Tente d’envoyer un message d’écho ICMP Internet Control Message Protocol () avec le tampon de données spécifié à l’ordinateur qui a spécifié IPAddress, et recevoir un message ICMP de réponse à écho correspondant de cet ordinateur. Cette méthode vous permet de spécifier une valeur de délai d’attente pour l’opération.

System_CAPS_pubmethodSend(IPAddress, Int32, Byte[])

Tente d’envoyer un message d’écho ICMP Internet Control Message Protocol () avec le tampon de données spécifié à l’ordinateur qui a spécifié IPAddress, et recevoir un message ICMP de réponse à écho correspondant de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

System_CAPS_pubmethodSend(IPAddress, Int32, Byte[], PingOptions)

Tente d’envoyer un message d’écho ICMP Internet Control Message Protocol () avec le tampon de données spécifié à l’ordinateur qui a spécifié IPAddress et recevoir un message ICMP de réponse à écho correspondant de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération et contrôler la fragmentation et les valeurs Time-to-Live pour le paquet de messages ICMP echo.

System_CAPS_pubmethodSend(String)

Essaie d’envoyer un message d’écho ICMP Internet Control Message Protocol () à l’ordinateur spécifié et recevoir un correspondant ICMP echo message de réponse de l’ordinateur.

System_CAPS_pubmethodSend(String, Int32)

Essaie d’envoyer un message d’écho ICMP Internet Control Message Protocol () à l’ordinateur spécifié et recevoir un correspondant ICMP echo message de réponse de l’ordinateur. Cette méthode vous permet de spécifier une valeur de délai d’attente pour l’opération.

System_CAPS_pubmethodSend(String, Int32, Byte[])

Essaie d’envoyer un message d’écho ICMP Internet Control Message Protocol () avec le tampon de données spécifié à l’ordinateur spécifié et recevoir un correspondant ICMP echo message de réponse de l’ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

System_CAPS_pubmethodSend(String, Int32, Byte[], PingOptions)

Essaie d’envoyer un message d’écho ICMP Internet Control Message Protocol () avec le tampon de données spécifié à l’ordinateur spécifié et recevoir un correspondant ICMP echo message de réponse de l’ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération et contrôler la fragmentation et les valeurs de Time-to-Live pour le paquet ICMP.

System_CAPS_pubmethodSendAsync(IPAddress, Int32, Byte[], Object)

En mode asynchrone tente d’envoyer un message d’écho ICMP Internet Control Message Protocol () avec le tampon de données spécifié à l’ordinateur qui a spécifié IPAddress, et recevoir un message ICMP de réponse à écho correspondant de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

System_CAPS_pubmethodSendAsync(IPAddress, Int32, Byte[], PingOptions, Object)

En mode asynchrone tente d’envoyer un message d’écho ICMP Internet Control Message Protocol () avec le tampon de données spécifié à l’ordinateur qui a spécifié IPAddress, et recevoir un message ICMP de réponse à écho correspondant de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération et contrôler la fragmentation et les valeurs Time-to-Live pour le paquet de messages ICMP echo.

System_CAPS_pubmethodSendAsync(IPAddress, Int32, Object)

En mode asynchrone essaie d’envoyer un message d’écho ICMP Internet Control Message Protocol () sur l’ordinateur qui a spécifié IPAddress, et recevoir un message ICMP de réponse à écho correspondant de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

System_CAPS_pubmethodSendAsync(IPAddress, Object)

En mode asynchrone essaie d’envoyer un message d’écho ICMP Internet Control Message Protocol () sur l’ordinateur qui a spécifié IPAddress, et recevoir un message ICMP de réponse à écho correspondant de cet ordinateur.

System_CAPS_pubmethodSendAsync(String, Int32, Byte[], Object)

En mode asynchrone tente d’envoyer un message d’écho ICMP Internet Control Message Protocol () avec le tampon de données spécifié à l’ordinateur spécifié et de recevoir un message ICMP de réponse à écho correspondant de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

System_CAPS_pubmethodSendAsync(String, Int32, Byte[], PingOptions, Object)

En mode asynchrone tente d’envoyer un message d’écho ICMP Internet Control Message Protocol () avec le tampon de données spécifié à l’ordinateur spécifié et de recevoir un message ICMP de réponse à écho correspondant de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération et contrôler la fragmentation et les valeurs de Time-to-Live pour le paquet ICMP.

System_CAPS_pubmethodSendAsync(String, Int32, Object)

En mode asynchrone tente d’envoyer un message d’écho ICMP Internet Control Message Protocol () à l’ordinateur spécifié et de recevoir un message ICMP de réponse à écho correspondant de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

System_CAPS_pubmethodSendAsync(String, Object)

En mode asynchrone tente d’envoyer un message d’écho ICMP Internet Control Message Protocol () à l’ordinateur spécifié et de recevoir un message ICMP de réponse à écho correspondant de cet ordinateur.

System_CAPS_pubmethodSendAsyncCancel()

Annule toutes les demandes asynchrones en attente pour envoyer un message d’écho ICMP Internet Control Message Protocol () et reçoit un message de réponse d’écho ICMP correspondant.

System_CAPS_pubmethodSendPingAsync(IPAddress)

Envoyer un message d’écho ICMP Internet Control Message Protocol () avec le tampon de données spécifié à l’ordinateur qui a spécifié IPAddress, et reçoit un message de réponse d’écho ICMP correspondant de l’ordinateur en tant qu’une opération asynchrone.

System_CAPS_pubmethodSendPingAsync(IPAddress, Int32)

Envoyer un message d’écho ICMP Internet Control Message Protocol () avec le tampon de données spécifié à l’ordinateur qui a spécifié IPAddress, et reçoit un message de réponse d’écho ICMP correspondant de l’ordinateur en tant qu’une opération asynchrone. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

System_CAPS_pubmethodSendPingAsync(IPAddress, Int32, Byte[])

Envoyer un message d’écho ICMP Internet Control Message Protocol () avec le tampon de données spécifié à l’ordinateur qui a spécifié IPAddress, et reçoit un message de réponse d’écho ICMP correspondant de l’ordinateur en tant qu’une opération asynchrone. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération et une mémoire tampon à utiliser pour envoyer et recevoir.

System_CAPS_pubmethodSendPingAsync(IPAddress, Int32, Byte[], PingOptions)

Envoyer un message d’écho ICMP Internet Control Message Protocol () avec le tampon de données spécifié à l’ordinateur qui a spécifié IPAddress, et reçoit un message de réponse d’écho ICMP correspondant de l’ordinateur en tant qu’une opération asynchrone. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération, une mémoire tampon à utiliser pour l’envoi et de réception, et de contrôler la fragmentation et durée de vie des valeurs pour le paquet de messages ICMP echo.

System_CAPS_pubmethodSendPingAsync(String)

Envoie un Message de protocole ICMP (Internet Control) message echo avec les données de la mémoire tampon à l’ordinateur spécifié et recevoir un message ICMP de réponse à écho correspondant de cet ordinateur en tant qu’une opération asynchrone.

System_CAPS_pubmethodSendPingAsync(String, Int32)

Envoie un Message de protocole ICMP (Internet Control) message echo avec les données de la mémoire tampon à l’ordinateur spécifié et recevoir un message ICMP de réponse à écho correspondant de cet ordinateur en tant qu’une opération asynchrone. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

System_CAPS_pubmethodSendPingAsync(String, Int32, Byte[])

Envoie un Message de protocole ICMP (Internet Control) message echo avec les données de la mémoire tampon à l’ordinateur spécifié et recevoir un message ICMP de réponse à écho correspondant de cet ordinateur en tant qu’une opération asynchrone. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération et une mémoire tampon à utiliser pour envoyer et recevoir.

System_CAPS_pubmethodSendPingAsync(String, Int32, Byte[], PingOptions)

Envoie un Message de protocole ICMP (Internet Control) message echo avec les données de la mémoire tampon à l’ordinateur spécifié et recevoir un message ICMP de réponse à écho correspondant de cet ordinateur en tant qu’une opération asynchrone. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération, une mémoire tampon à utiliser pour l’envoi et de réception, et de contrôler la fragmentation et durée de vie des valeurs pour le paquet de messages ICMP echo.

System_CAPS_pubmethodToString()

Retourne un String contenant le nom de la Component, le cas échéant. Cette méthode ne doit pas être remplacée.(Hérité de Component.)

NomDescription
System_CAPS_pubeventDisposed

Se produit lorsque le composant est supprimé par un appel à la Dispose (méthode).(Hérité de Component.)

System_CAPS_pubeventPingCompleted

Se produit lorsqu’une opération asynchrone pour envoyer un message d’écho ICMP Internet Control Message Protocol () et de recevoir le message de réponse d’écho ICMP correspondant se termine ou est annulée.

Les applications utilisent la Ping classe pour détecter si un ordinateur distant est accessible.

Topologie de réseau peut déterminer si Ping peuvent contacter un hôte distant. La présence et la configuration des proxies, le matériel de traduction d’adresses réseau ou les pare-feu peuvent empêcher Ping de réussir. Un bon Ping indique uniquement que la télécommande hôte est accessible sur le réseau, la présence de services de niveau supérieur (par exemple, un serveur Web) sur l’hôte distant n’est pas garantie.

Cette classe fournit des fonctionnalités semblables à l’outil de ligne de commande Ping.exe. Le Send et SendAsync méthodes envoient un message de demande d’écho ICMP Internet Control Message Protocol () pour un ordinateur distant et attend un message de réponse d’écho ICMP à partir de cet ordinateur. Pour obtenir une description détaillée des messages ICMP, consultez la RFC 792, disponible à l’adresse http://www.ietf.org.

Les types suivants sont utilisés avec la Ping classe et sont décrites en détail ci-dessous.

Nom de type

Description

IPStatus

Définit les codes d’état qui décrivent le résultat d’un message de demande d’écho ICMP.

PingOptions

Permet de configurer ou récupérer les paramètres qui contrôlent combien de fois le paquet demandé peuvent être transférés (Ttl), et si elle peut être fragmenté (DontFragment ).

PingReply

Contient les résultats d’une demande d’écho ICMP.

PingException

Levée si une erreur irrécupérable se produit.

PingCompletedEventArgs

Contient les données associées PingCompleted événements qui sont déclenchés quand un SendAsync appel se termine ou est annulée.

PingCompletedEventHandler

Délégué qui fournit la méthode de rappel appelée lorsqu’un SendAsync appel se termine ou est annulée.

Le Send et SendAsync méthodes retournent la réponse dans un PingReply objet. Le PingReply.Status propriété retourne un IPStatus valeur pour indiquer le résultat de la requête.

Lorsque vous envoyez la demande, vous devez spécifier l’ordinateur distant. Procéder en fournissant un hôte de chaîne de nom, une adresse IP au format de chaîne, ou une IPAddress objet.

Vous pouvez également spécifier un des types suivants d’informations :

  • Données accompagnant la demande. Spécification de buffer vous permet de connaître la durée nécessaire au déplacement vers et depuis l’hôte distant et l’unité de transmission maximale du chemin d’accès réseau d’un paquet de taille donnée. (Voir la Send ou SendAsync surcharges qui prennent un buffer paramètre.)

  • Si le paquet d’écho ICMP peut être fragmenté en transit. (Consultez le DontFragment propriété et Send ou SendAsync surcharges qui prennent un options paramètre.)

  • Combien de nœuds de routage, tels que des routeurs ou des passerelles, peuvent transférer le paquet avant qu’il atteigne l’ordinateur de destination ou ignorée. (Voir Ttl et Send ou SendAsync surcharges qui prennent un options paramètre.)

  • La limite de temps pendant laquelle la réponse doit être reçue. (Voir la Send ou SendAsync surcharges qui prennent un timeout paramètre.

La Ping classe offre des méthodes synchrones et asynchrones pour envoyer la demande. Si votre application doit être bloquée en attendant une réponse, utilisez le Send méthodes ; ces méthodes sont synchrones. Si votre application ne doit pas bloquer, utilisez asynchrone SendAsync méthodes. Un appel à SendAsync s’exécute dans son propre thread qui est alloué automatiquement à partir du pool de threads. Lorsque l’opération asynchrone se termine, elle déclenche le PingCompleted événement. Les applications utilisent un PingCompletedEventHandler délégué pour spécifier la méthode qui est appelée pour PingCompleted les événements. Vous devez ajouter un PingCompletedEventHandler délégué à l’événement avant d’appeler SendAsync. La méthode du délégué reçoit un PingCompletedEventArgs un objet contenant un PingReply objet qui décrit le résultat de la SendAsync appeler.

Vous ne pouvez pas utiliser la même instance de la Ping classe pour générer plusieurs demandes d’écho ICMP simultanées. L’appel Send pendant un SendAsync appel est en cours ou en appelant SendAsync plusieurs fois avant que tous les appels précédents soient terminés provoque une InvalidOperationException.

L’exemple de code suivant montre comment utiliser la Ping classe de façon synchrone.

using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Text;

namespace Examples.System.Net.NetworkInformation.PingTest
{
    public class PingExample
    {
        // args[0] can be an IPaddress or host name.
        public static void Main (string[] args)
        {
            Ping pingSender = new Ping ();
            PingOptions options = new PingOptions ();

            // Use the default Ttl value which is 128,
            // but change the fragmentation behavior.
            options.DontFragment = true;

            // Create a buffer of 32 bytes of data to be transmitted.
            string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
            byte[] buffer = Encoding.ASCII.GetBytes (data);
            int timeout = 120;
            PingReply reply = pingSender.Send (args[0], timeout, buffer, options);
            if (reply.Status == IPStatus.Success)
            {
                Console.WriteLine ("Address: {0}", reply.Address.ToString ());
                Console.WriteLine ("RoundTrip time: {0}", reply.RoundtripTime);
                Console.WriteLine ("Time to live: {0}", reply.Options.Ttl);
                Console.WriteLine ("Don't fragment: {0}", reply.Options.DontFragment);
                Console.WriteLine ("Buffer size: {0}", reply.Buffer.Length);
            }
        }
    }
}

L’exemple de code suivant montre comment utiliser la Ping classe de façon asynchrone.

using System;
using System.Text;
using System.Net;
using System.Net.NetworkInformation;
using System.ComponentModel;
using System.Threading;

namespace Examples.System.Net.NetworkInformation.PingTest
{
    public class PingExample
    {
        public static void Main (string[] args)
        {
            if (args.Length == 0)
                throw new ArgumentException ("Ping needs a host or IP Address.");

            string who = args[0];
            AutoResetEvent waiter = new AutoResetEvent (false);

            Ping pingSender = new Ping ();

            // When the PingCompleted event is raised,
            // the PingCompletedCallback method is called.
            pingSender.PingCompleted += new PingCompletedEventHandler (PingCompletedCallback);

            // Create a buffer of 32 bytes of data to be transmitted.
            string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
            byte[] buffer = Encoding.ASCII.GetBytes (data);

            // Wait 12 seconds for a reply.
            int timeout = 12000;

            // Set options for transmission:
            // The data can go through 64 gateways or routers
            // before it is destroyed, and the data packet
            // cannot be fragmented.
            PingOptions options = new PingOptions (64, true);

            Console.WriteLine ("Time to live: {0}", options.Ttl);
            Console.WriteLine ("Don't fragment: {0}", options.DontFragment);

            // Send the ping asynchronously.
            // Use the waiter as the user token.
            // When the callback completes, it can wake up this thread.
            pingSender.SendAsync(who, timeout, buffer, options, waiter);

            // Prevent this example application from ending.
            // A real application should do something useful
            // when possible.
            waiter.WaitOne ();
            Console.WriteLine ("Ping example completed.");
        }

        private static void PingCompletedCallback (object sender, PingCompletedEventArgs e)
        {
            // If the operation was canceled, display a message to the user.
            if (e.Cancelled)
            {
                Console.WriteLine ("Ping canceled.");

                // Let the main thread resume. 
                // UserToken is the AutoResetEvent object that the main thread 
                // is waiting for.
                ((AutoResetEvent)e.UserState).Set ();
            }

            // If an error occurred, display the exception to the user.
            if (e.Error != null)
            {
                Console.WriteLine ("Ping failed:");
                Console.WriteLine (e.Error.ToString ());

                // Let the main thread resume. 
                ((AutoResetEvent)e.UserState).Set();
            }

            PingReply reply = e.Reply;

            DisplayReply (reply);

            // Let the main thread resume.
            ((AutoResetEvent)e.UserState).Set();
        }

        public static void DisplayReply (PingReply reply)
        {
            if (reply == null)
                return;

            Console.WriteLine ("ping status: {0}", reply.Status);
            if (reply.Status == IPStatus.Success)
            {
                Console.WriteLine ("Address: {0}", reply.Address.ToString ());
                Console.WriteLine ("RoundTrip time: {0}", reply.RoundtripTime);
                Console.WriteLine ("Time to live: {0}", reply.Options.Ttl);
                Console.WriteLine ("Don't fragment: {0}", reply.Options.DontFragment);
                Console.WriteLine ("Buffer size: {0}", reply.Buffer.Length);
            }
        }
    }
}

.NET Framework
Disponible depuis 2.0

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: