Partager via


IPStatus Énumération

Définition

Signale l'état de l'envoi d'un message ICMP d'écho à un ordinateur.

public enum class IPStatus
public enum IPStatus
type IPStatus = 
Public Enum IPStatus
Héritage
IPStatus

Champs

BadDestination 11018

La demande d'écho ICMP a échoué, car l'adresse IP de destination ne peut pas recevoir de demandes d'écho ICMP ou ne doit jamais apparaître dans la zone d'adresse de destination d'un datagramme IP. Par exemple, l'appel à Send et la spécification de l'adresse IP « 000.0.0.0 » retourne cet état.

BadHeader 11042

La demande d'écho ICMP a échoué, car l'en-tête n'est pas valide.

BadOption 11007

La demande d'écho ICMP a échoué, car elle contient une option non valide.

BadRoute 11012

La demande d'écho ICMP a échoué, car il n'y a aucun itinéraire valide entre les ordinateurs source et de destination.

DestinationHostUnreachable 11003

La demande d'écho ICMP a échoué, car l'ordinateur de destination n'est pas accessible.

DestinationNetworkUnreachable 11002

La demande d'écho ICMP a échoué, car le réseau qui contient l'ordinateur de destination n'est pas accessible.

DestinationPortUnreachable 11005

La demande d'écho ICMP a échoué, car le port sur l'ordinateur de destination n'est pas disponible.

DestinationProhibited 11004

La demande d'écho ICMPv6 a échoué, car tout contact avec l'ordinateur de destination est interdit de manière administrative. Cette valeur ne s'applique qu'à IPv6.

DestinationProtocolUnreachable 11004

La demande d'écho ICMP a échoué, car l'ordinateur de destination qui est spécifié dans un message ICMP d'écho n'est pas accessible parce qu'il ne prend pas en charge le protocole du paquet. Cette valeur ne s'applique qu'à IPv4. Cette valeur est décrite dans la norme RFC 1812 d'IETF comme communication interdite administrativement.

DestinationScopeMismatch 11045

La demande d'écho ICMP a échoué, car l'adresse source et l'adresse de destination qui sont spécifiées dans un message ICMP d'écho ne sont pas dans la même portée. Ce problème est en général dû au fait qu'un routeur transfère un paquet à l'aide d'une interface qui est en dehors de la portée de l'adresse source. Les portées d'adresses (lien local, site local et portée globale) déterminent à quels emplacements du réseau une adresse est valide.

DestinationUnreachable 11040

La demande d'écho ICMP a échoué, car l'ordinateur de destination qui est spécifié dans un message ICMP d'écho n'est pas accessible ; la cause exacte du problème est inconnue.

HardwareError 11008

La demande d'écho ICMP a échoué en raison d'une erreur matérielle.

IcmpError 11044

La demande d'écho ICMP a échoué en raison d'une erreur de protocole ICMP.

NoResources 11006

La demande d'écho ICMP a échoué à cause d'une insuffisance de ressources réseau.

PacketTooBig 11009

La demande d'écho ICMP a échoué, car le paquet qui contient la demande est plus grand que l'unité de transmission maximale (MTU) d'un nœud (routeur ou passerelle) situé entre la source et la destination. L'unité de transmission maximale définit la taille maximale d'un paquet transmissible.

ParameterProblem 11015

La demande d'écho ICMP a échoué, car un nœud (routeur ou passerelle) a rencontré des problèmes lors du traitement de l'en-tête de paquet. C'est par exemple le cas si l'en-tête contient des données de champ non valides ou une option non reconnue.

SourceQuench 11016

La demande d'écho ICMP a échoué, car le paquet a été ignoré. Cela se produit lorsque la file d'attente de sortie de l'ordinateur source dispose d'un espace de stockage insuffisant ou lorsque les paquets arrivent à destination trop rapidement pour pouvoir être traités.

Success 0

La demande d'écho ICMP a réussi ; une réponse à écho ICMP a été reçue. Lorsque vous obtenez ce code d'état, les autres propriétés PingReply contiennent des données valides.

TimedOut 11010

La réponse à écho ICMP n'a pas été reçue dans les délais impartis. Le délai par défaut imparti pour les réponses est de 5 secondes. Modification possible de cette valeur à l'aide des méthodes Send ou SendAsync qui prennent un paramètre timeout.

TimeExceeded 11041

La demande d'écho ICMP a échoué, car sa valeur de durée de vie (TTL) a atteint zéro, ce qui a forcé le nœud (routeur ou passerelle) a ignoré le paquet.

TtlExpired 11013

La demande d'écho ICMP a échoué, car sa valeur de durée de vie (TTL) a atteint zéro, ce qui a forcé le nœud (routeur ou passerelle) a ignoré le paquet.

TtlReassemblyTimeExceeded 11014

La demande d'écho ICMP a échoué, car le paquet a été divisé en fragments pour la transmission et tous les fragments n'ont pas été reçus dans les délais impartis pour le réassemblage. La RFC 2460 spécifie 60 secondes comme délai limite pour la réception de tous les fragments de paquet.

Unknown -1

La demande d'écho ICMP a échoué pour une raison inconnue.

UnrecognizedNextHeader 11043

La demande d'écho ICMP a échoué, car le champ Next Header ne contient pas de valeur reconnue. Le champ Next Header indique le type d'en-tête d'extension (s'il est présent) ou le protocole au-dessus de la couche IP, par exemple TCP ou UDP.

Exemples

L’exemple de code suivant envoie un message d’écho ICMP et vérifie les status.

#using <System.dll>

using namespace System;
using namespace System::Net;
using namespace System::Net::NetworkInformation;
using namespace System::Text;

// args[1] can be an IPaddress or host name.
int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   
   Ping ^ pingSender = gcnew Ping;
   PingOptions ^ options = gcnew 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";
   array<Byte>^buffer = Encoding::ASCII->GetBytes( data );
   int timeout = 120;
   PingReply ^ reply = pingSender->Send( args[ 1 ], 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 );
   }

   
}
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);
            }
        }
    }
}
open System.Net.NetworkInformation
open System.Text

// args[0] can be an IPaddress or host name.
[<EntryPoint>]
let main args =
    let pingSender = new Ping()

    // Use the default Ttl value which is 128,
    // but change the fragmentation behavior.
    let options = PingOptions()
    options.DontFragment <- true

    // Create a buffer of 32 bytes of data to be transmitted.
    let data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    let buffer = Encoding.ASCII.GetBytes data
    let timeout = 120
    let reply: PingReply = pingSender.Send(args.[0], timeout, buffer, options)

    match reply.Status with
    | IPStatus.Success ->
        printfn "Address: %O" reply.Address
        printfn "RoundTrip time: %d" reply.RoundtripTime
        printfn "Time to live: %d" reply.Options.Ttl
        printfn "Don't fragment: %b" reply.Options.DontFragment
        printfn "Buffer size: %d" reply.Buffer.Length
        0
    | _ ->
        eprintfn "Error sending ping: %O" reply
        eprintfn "Error was: %O" reply.Status
        1

Remarques

La Ping classe utilise les valeurs de cette énumération pour définir la PingReply.Status propriété . La Ping classe retourne PingReply des objets lorsque vous appelez les Ping.Send méthodes ou Ping.SendAsync pour case activée si vous pouvez atteindre un ordinateur via le réseau.

Avertissement

Les valeurs d’énumération DestinationProhibited et DestinationProtocolUnreachable ont la même valeur numérique. Cela est possible, car DestinationProhibited s’applique uniquement à IPv6 et DestinationProtocolUnreachable s’applique uniquement à IPv4.

S’applique à