IPStatus Enum
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Rapporteert de status van het verzenden van een ICMP-echobericht (Internet Control Message Protocol) naar een computer.
public enum class IPStatus
public enum IPStatus
type IPStatus =
Public Enum IPStatus
- Overname
Velden
| Name | Waarde | Description |
|---|---|---|
| Unknown | -1 | De ICMP-echoaanvraag is om een onbekende reden mislukt. |
| Success | 0 | De ICMP-echoaanvraag is geslaagd; er is een ICMP-echoantwoord ontvangen. Wanneer u deze statuscode krijgt, bevatten de andere PingReply eigenschappen geldige gegevens. |
| DestinationNetworkUnreachable | 11002 | De ICMP-echoaanvraag is mislukt omdat het netwerk met de doelcomputer niet bereikbaar is. |
| DestinationHostUnreachable | 11003 | De ICMP-echoaanvraag is mislukt omdat de doelcomputer niet bereikbaar is. |
| DestinationProhibited | 11004 | De ICMPv6-echoaanvraag is mislukt omdat contact met de doelcomputer administratief is verboden. Deze waarde is alleen van toepassing op IPv6. |
| DestinationProtocolUnreachable | 11004 | De ICMP-echoaanvraag is mislukt omdat de doelcomputer die is opgegeven in een ICMP-echobericht niet bereikbaar is, omdat deze het protocol van het pakket niet ondersteunt. Deze waarde is alleen van toepassing op IPv4. Deze waarde wordt beschreven in IETF RFC 1812 als Communicatie administratief verboden. |
| DestinationPortUnreachable | 11005 | De ICMP-echoaanvraag is mislukt omdat de poort op de doelcomputer niet beschikbaar is. |
| NoResources | 11006 | De ICMP-echoaanvraag is mislukt vanwege onvoldoende netwerkbronnen. |
| BadOption | 11007 | De ICMP-echoaanvraag is mislukt omdat deze een ongeldige optie bevat. |
| HardwareError | 11008 | De ICMP-echoaanvraag is mislukt vanwege een hardwarefout. |
| PacketTooBig | 11009 | De ICMP-echoaanvraag is mislukt omdat het pakket met de aanvraag groter is dan de maximale transmissie-eenheid (MTU) van een knooppunt (router of gateway) dat zich tussen de bron en het doel bevindt. De MTU definieert de maximale grootte van een verzonden pakket. |
| TimedOut | 11010 | Het ICMP-echoantwoord is niet binnen de toegewezen tijd ontvangen. De standaardtijd die is toegestaan voor antwoorden is 5 seconden. U kunt deze waarde wijzigen met behulp van de Send of SendAsync methoden die een |
| BadRoute | 11012 | De ICMP-echoaanvraag is mislukt omdat er geen geldige route is tussen de bron- en doelcomputers. |
| TtlExpired | 11013 | De ICMP-echoaanvraag is mislukt omdat de TTL-waarde (Time to Live) nul heeft bereikt, waardoor het doorstuurknooppunt (router of gateway) het pakket negeert. |
| TtlReassemblyTimeExceeded | 11014 | De ICMP-echoaanvraag is mislukt omdat het pakket is onderverdeeld in fragmenten voor verzending en alle fragmenten niet zijn ontvangen binnen de tijd die is toegewezen voor opnieuwassembly. RFC 2460 geeft 60 seconden op als de tijdslimiet waarbinnen alle pakketfragmenten moeten worden ontvangen. |
| ParameterProblem | 11015 | De ICMP-echoaanvraag is mislukt omdat een knooppunt (router of gateway) problemen heeft ondervonden tijdens het verwerken van de pakketheader. Dit is de status als de header bijvoorbeeld ongeldige veldgegevens of een niet-herkende optie bevat. |
| SourceQuench | 11016 | De ICMP-echoaanvraag is mislukt omdat het pakket is verwijderd. Dit gebeurt wanneer de uitvoerwachtrij van de broncomputer onvoldoende opslagruimte heeft of wanneer pakketten te snel op de bestemming aankomen om te worden verwerkt. |
| BadDestination | 11018 | De ICMP-echoaanvraag is mislukt omdat het doel-IP-adres geen ICMP-echoaanvragen kan ontvangen of nooit mag worden weergegeven in het doeladresveld van een IP-datagram. Als u bijvoorbeeld Send ip-adres 000.0.0.0.0 opgeeft, wordt deze status geretourneerd. |
| DestinationUnreachable | 11040 | De ICMP-echoaanvraag is mislukt omdat de doelcomputer die is opgegeven in een ICMP-echobericht niet bereikbaar is; de exacte oorzaak van het probleem is onbekend. |
| TimeExceeded | 11041 | De ICMP-echoaanvraag is mislukt omdat de TTL-waarde (Time to Live) nul heeft bereikt, waardoor het doorstuurknooppunt (router of gateway) het pakket negeert. |
| BadHeader | 11042 | De ICMP-echoaanvraag is mislukt omdat de header ongeldig is. |
| UnrecognizedNextHeader | 11043 | De ICMP-echoaanvraag is mislukt omdat het veld Volgende header geen herkende waarde bevat. Het veld Volgende header geeft het type extensieheader aan (indien aanwezig) of het protocol boven de IP-laag, bijvoorbeeld TCP of UDP. |
| IcmpError | 11044 | De ICMP-echoaanvraag is mislukt vanwege een ICMP-protocolfout. |
| DestinationScopeMismatch | 11045 | De ICMP-echoaanvraag is mislukt omdat het bronadres en het doeladres dat zijn opgegeven in een ICMP-echobericht, zich niet in hetzelfde bereik bevinden. Dit wordt meestal veroorzaakt door een router die een pakket doorstuurt met behulp van een interface die buiten het bereik van het bronadres valt. Adresbereiken (koppelings-lokaal, site-lokaal en globaal bereik) bepalen waar in het netwerk een adres geldig is. |
Voorbeelden
In het volgende codevoorbeeld wordt een ICMP-echobericht verzonden en wordt de status gecontroleerd.
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
Opmerkingen
De Ping klasse gebruikt de waarden in deze opsomming om de PingReply.Status eigenschap in te stellen. De Ping klasse retourneert objecten wanneer u de Ping.Send of Ping.SendAsync methoden aanroept PingReply om te controleren of u een computer via het netwerk kunt bereiken.
Warning
De opsommingswaarden DestinationProhibited en DestinationProtocolUnreachable hebben dezelfde numerieke waarde. Dit is mogelijk omdat DestinationProhibited alleen van toepassing is op IPv6 en DestinationProtocolUnreachable is alleen van toepassing op IPv4.