IPStatus Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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 |
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.