Teilen über


IPStatus Enumeration

Definition

Gibt den Status des Sendens einer ICMP (Internet Control Message Protocol)-Echomeldung an einen Computer an.

public enum class IPStatus
public enum IPStatus
type IPStatus = 
Public Enum IPStatus
Vererbung
IPStatus

Felder

BadDestination 11018

Die ICMP-Echoanfrage ist fehlgeschlagen, weil die IP-Zieladresse keine ICMP-Echoanfragen empfangen kann oder niemals im Zieladressfeld eines beliebigen IP-Datagramms vorhanden sein darf. Beispielsweise wird dieser Status zurückgegeben, wenn Send aufgerufen und die IP-Adresse "000.0.0.0" angegeben wird.

BadHeader 11042

Die ICMP-Echoanfrage ist fehlgeschlagen, weil der Header ungültig ist.

BadOption 11007

Die ICMP-Echoanfrage ist fehlgeschlagen, weil sie eine ungültige Option enthält.

BadRoute 11012

Die ICMP-Echoanfrage ist fehlgeschlagen, weil keine gültige Route zwischen dem Quell- und Zielcomputer vorhanden ist.

DestinationHostUnreachable 11003

Die ICMP-Echoanfrage ist fehlgeschlagen, weil der Zielcomputer nicht erreichbar ist.

DestinationNetworkUnreachable 11002

Die ICMP-Echoanfrage ist fehlgeschlagen, weil das Netzwerk, in dem sich der Zielcomputer befindet, nicht erreichbar ist.

DestinationPortUnreachable 11005

Die ICMP-Echoanfrage ist fehlgeschlagen, weil der Anschluss auf dem Zielcomputer nicht verfügbar ist.

DestinationProhibited 11004

Die ICMPv6-Echoanfrage ist fehlgeschlagen, weil der Kontakt mit dem Zielcomputer administrativ als nicht zulässig festgelegt wurde. Dieser Wert gilt nur für IPv6.

DestinationProtocolUnreachable 11004

Die ICMP-Echoanfrage ist fehlgeschlagen, weil der in einer ICMP-Echomeldung angegebene Zielcomputer nicht erreichbar ist, da er das Protokoll des Pakets nicht unterstützt. Dieser Wert gilt nur für IPv4. Dieser Wert wird in IETF RFC 1812 als vom Administrator untersagte Kommunikation beschrieben.

DestinationScopeMismatch 11045

Die ICMP-Echoanfrage ist fehlgeschlagen, weil sich die in einer ICMP-Echomeldung angegebene Quell- und Zieladresse nicht in demselben Bereich befinden. Dies wird i. d. R. durch einen Router verursacht, der ein Paket unter Verwendung einer Schnittstelle weiterleitet, die sich außerhalb des Bereichs der Quelladresse befindet. Adressbereiche (die Bereiche Link-Local, Site-Local und Global) bestimmen, in welchem Bereich eines Netzwerks eine Adresse gültig ist

DestinationUnreachable 11040

Die ICMP-Echoanfrage ist fehlgeschlagen, weil der in einer ICMP-Echomeldung angegebene Zielcomputer nicht erreichbar ist. Die genaue Ursache des Problems ist unbekannt.

HardwareError 11008

Die ICMP-Echoanfrage ist aufgrund eines Hardwarefehlers fehlgeschlagen.

IcmpError 11044

Die ICMP-Echoanfrage ist aufgrund eines ICMP-Protokollfehlers fehlgeschlagen.

NoResources 11006

Die ICMP-Echoanfrage ist wegen ungenügender Netzwerkressourcen fehlgeschlagen.

PacketTooBig 11009

Die ICMP-Echoanfrage ist fehlgeschlagen, weil das Paket mit der Anfrage die Größe der maximalen Übertragungseinheit eines Knotens (Router oder Gateway) zwischen Quelle und Ziel übersteigt. Mit der maximalen Übertragungseinehit wird die maximale Größe eines übertragbaren Pakets definiert.

ParameterProblem 11015

Die ICMP-Echoanfrage ist fehlgeschlagen, weil auf einem Knoten (Router oder Gateway) während der Verarbeitung des Paketheaders Probleme aufgetreten sind. Dieser Status liegt z. B. vor, wenn der Header ungültige Felddaten oder eine nicht erkannte Option enthält.

SourceQuench 11016

Die ICMP-Echoanfrage ist fehlgeschlagen, weil das Paket verworfen wurde. Dies ist der Fall, wenn die Ausgabewarteschlange des Computers über nicht genügend Speicher verfügt oder wenn Pakete zu schnell am Ziel eintreffen, um verarbeitet zu werden.

Success 0

Die ICMP-Echoanfrage wurde erfolgreich ausgeführt. Es wurde eine ICMP-Echoantwort empfangen. Wenn Sie diesen Statuscode erhalten, weisen die anderen PingReply-Eigenschaften gültige Daten auf.

TimedOut 11010

Die ICMP-Echoantwort wurde nicht innerhalb der zugewiesenen Zeitspanne empfangen. Die für Antworten zulässige Standardzeitspanne beträgt 5 Sekunden. Sie können diesen Wert mit der Send-Methode oder der SendAsync-Methode ändern, die einen timeout-Parameter akzeptieren.

TimeExceeded 11041

Die ICMP-Echoanfrage ist fehlgeschlagen, weil der Wert der Gültigkeitsdauer 0 (null) erreicht hat, sodass der Weiterleitungsknoten (Router oder Gateway) das Paket verworfen hat.

TtlExpired 11013

Die ICMP-Echoanfrage ist fehlgeschlagen, weil der Wert der Gültigkeitsdauer 0 (null) erreicht hat, sodass der Weiterleitungsknoten (Router oder Gateway) das Paket verworfen hat.

TtlReassemblyTimeExceeded 11014

Die ICMP-Echoanfrage ist fehlgeschlagen, weil das Paket für die Übertragung in Fragmente aufgeteilt wurde und nicht alle Fragmente in der für das Zusammenfügen zugeteilten Zeitspanne empfangen wurden. In RFC 2460 werden 60 Sekunden als die Frist angegeben, in der alle Paketfragmente empfangen werden müssen.

Unknown -1

Die ICMP-Echoanfrage ist aus einem unbekannten Grund fehlgeschlagen.

UnrecognizedNextHeader 11043

Die ICMP-Echoanfrage ist fehlgeschlagen, weil das Next Header-Feld keinen erkannten Wert enthält. Das Next Header-Feld gibt ggf. den Typ des Erweiterungsheaders oder das Protokoll über der IP-Schicht an (z. B. TCP oder UDP).

Beispiele

Im folgenden Codebeispiel wird eine ICMP-Echomeldung gesendet und die status überprüft.

#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

Hinweise

Die Ping -Klasse verwendet die Werte in dieser Enumeration, um die PingReply.Status -Eigenschaft festzulegen. Die Ping -Klasse gibt Objekte zurück PingReply , wenn Sie die Ping.Send -Methode oder Ping.SendAsync aufrufen, um zu überprüfen, ob Sie einen Computer über das Netzwerk erreichen können.

Warnung

Die Enumerationswerte DestinationProhibited und DestinationProtocolUnreachable weisen den gleichen numerischen Wert auf. Dies ist möglich, da DestinationProhibited nur für IPv6 und DestinationProtocolUnreachable nur für IPv4 gilt.

Gilt für: