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.
Meldet den Status des Sendens einer ICMP-Echonachricht (Internet Control Message Protocol) an einen Computer.
public enum class IPStatus
public enum IPStatus
type IPStatus =
Public Enum IPStatus
- Vererbung
Felder
| Name | Wert | Beschreibung |
|---|---|---|
| Unknown | -1 | Fehler bei der ICMP-Echoanforderung aus einem unbekannten Grund. |
| Success | 0 | Die ICMP-Echoanforderung war erfolgreich; eine ICMP-Echoantwort wurde empfangen. Wenn Sie diesen Statuscode erhalten, enthalten die anderen PingReply Eigenschaften gültige Daten. |
| DestinationNetworkUnreachable | 11002 | Fehler bei der ICMP-Echoanforderung, da das Netzwerk, das den Zielcomputer enthält, nicht erreichbar ist. |
| DestinationHostUnreachable | 11003 | Fehler bei der ICMP-Echoanforderung, da der Zielcomputer nicht erreichbar ist. |
| DestinationProhibited | 11004 | Fehler bei der ICMPv6-Echoanforderung, da der Kontakt mit dem Zielcomputer nicht zulässig ist. Dieser Wert gilt nur für IPv6. |
| DestinationProtocolUnreachable | 11004 | Fehler bei der ICMP-Echoanforderung, da der Zielcomputer, der in einer ICMP-Echonachricht angegeben ist, nicht erreichbar ist, da es das Protokoll des Pakets nicht unterstützt. Dieser Wert gilt nur für IPv4. Dieser Wert wird in IETF RFC 1812 als "Kommunikation administrativ verboten" beschrieben. |
| DestinationPortUnreachable | 11005 | Fehler bei der ICMP-Echoanforderung, da der Port auf dem Zielcomputer nicht verfügbar ist. |
| NoResources | 11006 | Fehler bei der ICMP-Echoanforderung aufgrund unzureichender Netzwerkressourcen. |
| BadOption | 11007 | Fehler bei der ICMP-Echoanforderung, da sie eine ungültige Option enthält. |
| HardwareError | 11008 | Fehler bei der ICMP-Echoanforderung aufgrund eines Hardwarefehlers. |
| PacketTooBig | 11009 | Fehler bei der ICMP-Echoanforderung, da das Paket, das die Anforderung enthält, größer als die maximale Übertragungseinheit (MTU) eines Knotens (Router oder Gateways) zwischen der Quelle und dem Ziel ist. Die MTU definiert die maximale Größe eines übertragungsfähigen Pakets. |
| TimedOut | 11010 | Die ICMP-Echoantwort wurde nicht innerhalb der vorgesehenen Zeit empfangen. Die für Antworten zulässige Standardzeit beträgt 5 Sekunden. Sie können diesen Wert mit den Methoden oder SendAsync Methoden Send ändern, die einen |
| BadRoute | 11012 | Fehler bei der ICMP-Echoanforderung, da keine gültige Route zwischen den Quell- und Zielcomputern vorhanden ist. |
| TtlExpired | 11013 | Fehler bei der ICMP-Echoanforderung, da der Wert "Time to Live" (TTL) null erreicht hat, wodurch der Weiterleitungsknoten (Router oder Gateway) das Paket verworfen hat. |
| TtlReassemblyTimeExceeded | 11014 | Fehler bei der ICMP-Echoanforderung, da das Paket für die Übertragung in Fragmente aufgeteilt wurde und alle Fragmente nicht innerhalb der Zeit empfangen wurden, die für eine erneute Zusammenschaltung vorgesehen wurden. RFC 2460 gibt 60 Sekunden als Zeitlimit an, in dem alle Paketfragmente empfangen werden müssen. |
| ParameterProblem | 11015 | Fehler bei der ICMP-Echoanforderung, da beim Verarbeiten des Paketheaders Probleme bei einem Knoten (Router oder Gateway) aufgetreten sind. Dies ist der Status, wenn die Kopfzeile z. B. ungültige Felddaten oder eine nicht erkannte Option enthält. |
| SourceQuench | 11016 | Fehler bei der ICMP-Echoanforderung, da das Paket verworfen wurde. Dies tritt auf, wenn die Ausgabewarteschlange des Quellcomputers über unzureichenden Speicherplatz verfügt oder Pakete zu schnell an das Ziel gelangen, um verarbeitet zu werden. |
| BadDestination | 11018 | Fehler bei der ICMP-Echoanforderung, da die ZIEL-IP-Adresse keine ICMP-Echoanforderungen empfangen kann oder nie im Zieladressenfeld eines IP-Datagramms angezeigt werden soll. Beispielsweise wird dieser Status durch Aufrufen Send und Angeben der IP-Adresse "000.0.0.0" zurückgegeben. |
| DestinationUnreachable | 11040 | Fehler bei der ICMP-Echoanforderung, da der Zielcomputer, der in einer ICMP-Echonachricht angegeben ist, nicht erreichbar ist. die genaue Ursache des Problems ist unbekannt. |
| TimeExceeded | 11041 | Fehler bei der ICMP-Echoanforderung, da der Wert "Time to Live" (TTL) null erreicht hat, wodurch der Weiterleitungsknoten (Router oder Gateway) das Paket verworfen hat. |
| BadHeader | 11042 | Fehler bei der ICMP-Echoanforderung, da der Header ungültig ist. |
| UnrecognizedNextHeader | 11043 | Fehler bei der ICMP-Echoanforderung, da das Feld "Nächster Header" keinen erkannten Wert enthält. Das Feld "Nächster Header" gibt den Erweiterungsheadertyp (sofern vorhanden) oder das Protokoll über der IP-Ebene an, z. B. TCP oder UDP. |
| IcmpError | 11044 | Fehler bei der ICMP-Echoanforderung aufgrund eines ICMP-Protokollfehlers. |
| DestinationScopeMismatch | 11045 | Fehler bei der ICMP-Echoanforderung, da sich die In einer ICMP-Echonachricht angegebene Quelladresse und Zieladresse nicht im gleichen Bereich befinden. Dies wird in der Regel durch einen Router verursacht, der ein Paket über eine Schnittstelle weiterleitt, die sich außerhalb des Bereichs der Quelladresse befindet. Adressbereiche (link-local, site-local und global scope) bestimmen, wo im Netzwerk eine Adresse gültig ist. |
Beispiele
Im folgenden Codebeispiel wird eine ICMP-Echonachricht gesendet und der Status überprüft.
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 Methoden aufrufen, Ping.SendAsync um zu überprüfen, ob Sie einen Computer über das Netzwerk erreichen können.
Warnung
Die Enumerationswerte DestinationProhibited und DestinationProtocolUnreachable haben denselben numerischen Wert. Dies ist möglich, da DestinationProhibited nur für IPv6 und DestinationProtocolUnreachable gilt nur für IPv4.