IPStatus Enum

Definitie

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
IPStatus

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 timeout parameter gebruiken.

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.

Van toepassing op