IPStatus Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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 |
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.