IPStatus Sabit listesi
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
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 |
| 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.