Aracılığıyla paylaş


IPStatus Sabit listesi

Tanım

Bir bilgisayara İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi gönderme durumunu bildirir.

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

Alanlar

Name Değer Description
Unknown -1

ICMP yankı isteği bilinmeyen bir nedenle başarısız oldu.

Success 0

ICMP yankı isteği başarılı oldu; ICMP yankı yanıtı alındı. Bu durum kodunu aldığınızda, diğer PingReply özellikler geçerli veriler içerir.

DestinationNetworkUnreachable 11002

Hedef bilgisayarı içeren ağa ulaşılamadığınız için ICMP yankı isteği başarısız oldu.

DestinationHostUnreachable 11003

Hedef bilgisayara ulaşılamadığınız için ICMP yankı isteği başarısız oldu.

DestinationProhibited 11004

Hedef bilgisayarla iletişim yönetimsel olarak yasaklandığından ICMPv6 yankı isteği başarısız oldu. Bu değer yalnızca IPv6 için geçerlidir.

DestinationProtocolUnreachable 11004

ICMP yankı iletisinde belirtilen hedef bilgisayara, paketin protokolunu desteklemediğinden erişilemediğinden ICMP yankı isteği başarısız oldu. Bu değer yalnızca IPv4 için geçerlidir. Bu değer IETF RFC 1812'de İletişim Yönetimsel Olarak Yasaklanmış olarak açıklanmıştır.

DestinationPortUnreachable 11005

Hedef bilgisayardaki bağlantı noktası kullanılamadığından ICMP yankı isteği başarısız oldu.

NoResources 11006

ICMP yankı isteği yetersiz ağ kaynakları nedeniyle başarısız oldu.

BadOption 11007

ICMP yankı isteği geçersiz bir seçenek içerdiğinden başarısız oldu.

HardwareError 11008

ICMP yankı isteği bir donanım hatası nedeniyle başarısız oldu.

PacketTooBig 11009

İsteği içeren paket, kaynak ve hedef arasında bulunan bir düğümün (yönlendirici veya ağ geçidi) en yüksek iletim biriminden (MTU) daha büyük olduğundan ICMP yankı isteği başarısız oldu. MTU, iletilebilen bir paketin en büyük boyutunu tanımlar.

TimedOut 11010

ICMP yankı yanıtı ayrılan süre içinde alınmadı. Yanıtlar için izin verilen varsayılan süre 5 saniyedir. Parametre alan timeout veya SendAsync yöntemlerini kullanarak Send bu değeri değiştirebilirsiniz.

BadRoute 11012

Kaynak ve hedef bilgisayarlar arasında geçerli bir yol olmadığından ICMP yankı isteği başarısız oldu.

TtlExpired 11013

Yaşam Süresi (TTL) değeri sıfıra ulaştığından ICMP yankı isteği başarısız oldu ve bu da iletme düğümünü (yönlendirici veya ağ geçidi) paketi atmasına neden oldu.

TtlReassemblyTimeExceeded 11014

Paket iletim için parçalara ayrıldığından ve parçaların tümü yeniden birleştirme için ayrılan süre içinde alınmadığından ICMP yankı isteği başarısız oldu. RFC 2460 , tüm paket parçalarının alınması gereken süre sınırı olarak 60 saniye belirtir.

ParameterProblem 11015

Bir düğüm (yönlendirici veya ağ geçidi) paket üst bilgisini işlerken sorunlarla karşılaştığından ICMP yankı isteği başarısız oldu. Örneğin, üst bilgi geçersiz alan verileri veya tanınmayan bir seçenek içeriyorsa bu durumdur.

SourceQuench 11016

Paket atıldığı için ICMP yankı isteği başarısız oldu. Bu durum, kaynak bilgisayarın çıkış kuyruğunda depolama alanı yetersiz olduğunda veya paketler hedefe işlenemeyecek kadar hızlı ulaştığında oluşur.

BadDestination 11018

Hedef IP adresi ICMP yankı isteklerini alamadığından veya hiçbir IP veri biriminin hedef adres alanında görünmemesi gerektiğinden ICMP yankı isteği başarısız oldu. Örneğin, "000.0.0.0" IP adresini çağırmak Send ve belirtmek bu durumu döndürür.

DestinationUnreachable 11040

ICMP yankı iletisinde belirtilen hedef bilgisayara erişilemediğinden ICMP yankı isteği başarısız oldu; sorunun tam nedeni bilinmiyor.

TimeExceeded 11041

Yaşam Süresi (TTL) değeri sıfıra ulaştığından ICMP yankı isteği başarısız oldu ve bu da iletme düğümünü (yönlendirici veya ağ geçidi) paketi atmasına neden oldu.

BadHeader 11042

Üst bilgi geçersiz olduğundan ICMP yankı isteği başarısız oldu.

UnrecognizedNextHeader 11043

Sonraki Üst Bilgi alanı tanınan bir değer içermediğinden ICMP yankı isteği başarısız oldu. Sonraki Üst Bilgi alanı, uzantı üst bilgisi türünü (varsa) veya IP katmanının üzerindeki protokolü (örneğin, TCP veya UDP) gösterir.

IcmpError 11044

ICMP yankı isteği bir ICMP protokolü hatası nedeniyle başarısız oldu.

DestinationScopeMismatch 11045

ICMP yankı iletisinde belirtilen kaynak adresi ve hedef adresi aynı kapsamda olmadığından ICMP yankı isteği başarısız oldu. Bunun nedeni genellikle bir yönlendiricinin kaynak adresin kapsamı dışında bir arabirim kullanarak paketi iletmesidir. Adres kapsamları (bağlantı-yerel, site-yerel ve genel kapsam) bir adresin ağda nerede geçerli olduğunu belirler.

Örnekler

Aşağıdaki kod örneği bir ICMP yankı iletisi gönderir ve durumu denetler.

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

Açıklamalar

sınıfı, Ping özelliğini ayarlamak PingReply.Status için bu numaralandırmadaki değerleri kullanır. ağ Ping üzerinden bir bilgisayara ulaşıp ulaşamayacağınızı denetlemek için veya Ping.SendAsync yöntemlerini çağırdığınızda Ping.Send sınıfı nesneleri döndürürPingReply.

Uyarı

DestinationProhibited ve DestinationProtocolUnreachable numaralandırma değerleri aynı sayısal değere sahiptir. DestinationProhibited yalnızca IPv6 için ve DestinationProtocolUnreachable yalnızca IPv4 için uygulandığından bu mümkündür.

Şunlara uygulanır