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

BadDestination 11018

Hedef IP adresi ICMP yankı isteklerini alamadığı veya hiçbir IP veri biriminin hedef adres alanında görünmemesi gerektiği için 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.

BadHeader 11042

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

BadOption 11007

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

BadRoute 11012

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

DestinationHostUnreachable 11003

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

DestinationNetworkUnreachable 11002

Hedef bilgisayarı içeren ağ ulaşılabilir olmadığından ICMP yankı isteği başarısız oldu.

DestinationPortUnreachable 11005

Hedef bilgisayardaki bağlantı noktası kullanılamadığından 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 bilgisayar paketin protokollerini 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 Yasaklandı olarak açıklanmıştır.

DestinationScopeMismatch 11045

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

DestinationUnreachable 11040

ICMP yankı iletisinde belirtilen hedef bilgisayara ulaşılamadığı için ICMP yankı isteği başarısız oldu; sorunun tam nedeni bilinmiyor.

HardwareError 11008

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

IcmpError 11044

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

NoResources 11006

Yetersiz ağ kaynakları nedeniyle ICMP yankı isteği 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 boyut üst sınırını tanımlar.

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. Bu durum, örneğin üst bilgi geçersiz alan verileri veya tanınmayan bir seçenek içeriyorsa 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.

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.

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.

TimeExceeded 11041

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

TtlExpired 11013

ICMP yankı isteği, Yaşam Süresi (TTL) değeri sıfıra ulaştığından başarısız oldu ve iletim 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.

Unknown -1

ICMP yankı isteği bilinmeyen bir nedenle 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.

Örnekler

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

#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

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 sabit listesi değerleri aynı sayısal değere sahiptir. Bu mümkündür çünkü DestinationProhibited yalnızca IPv6 için geçerlidir ve DestinationProtocolUnreachable yalnızca IPv4 için geçerlidir.

Şunlara uygulanır