IPStatus Enum

Definisi

Melaporkan status pengiriman pesan gema Protokol Pesan Kontrol Internet (ICMP) ke komputer.

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

Bidang

BadDestination 11018

Permintaan gema ICMP gagal karena alamat IP tujuan tidak dapat menerima permintaan gema ICMP atau tidak boleh muncul di bidang alamat tujuan dari datagram IP apa pun. Misalnya, memanggil Send dan menentukan alamat IP "000.0.0.0" mengembalikan status ini.

BadHeader 11042

Permintaan gema ICMP gagal karena header tidak valid.

BadOption 11007

Permintaan gema ICMP gagal karena berisi opsi yang tidak valid.

BadRoute 11012

Permintaan gema ICMP gagal karena tidak ada rute yang valid antara komputer sumber dan tujuan.

DestinationHostUnreachable 11003

Permintaan gema ICMP gagal karena komputer tujuan tidak dapat dijangkau.

DestinationNetworkUnreachable 11002

Permintaan gema ICMP gagal karena jaringan yang berisi komputer tujuan tidak dapat dijangkau.

DestinationPortUnreachable 11005

Permintaan gema ICMP gagal karena port pada komputer tujuan tidak tersedia.

DestinationProhibited 11004

Permintaan gema ICMPv6 gagal karena kontak dengan komputer tujuan dilarang secara administratif. Nilai ini hanya berlaku untuk IPv6.

DestinationProtocolUnreachable 11004

Permintaan gema ICMP gagal karena komputer tujuan yang ditentukan dalam pesan gema ICMP tidak dapat dijangkau, karena tidak mendukung protokol paket. Nilai ini hanya berlaku untuk IPv4. Nilai ini dijelaskan dalam IETF RFC 1812 sebagai Komunikasi Yang Dilarang Secara Administratif.

DestinationScopeMismatch 11045

Permintaan gema ICMP gagal karena alamat sumber dan alamat tujuan yang ditentukan dalam pesan gema ICMP tidak berada dalam cakupan yang sama. Hal ini biasanya disebabkan oleh router yang meneruskan paket menggunakan antarmuka yang berada di luar cakupan alamat sumber. Cakupan alamat (lingkup link-local, site-local, dan global) menentukan di mana pada jaringan alamat valid.

DestinationUnreachable 11040

Permintaan gema ICMP gagal karena komputer tujuan yang ditentukan dalam pesan gema ICMP tidak dapat dijangkau; penyebab pasti masalah tidak diketahui.

HardwareError 11008

Permintaan gema ICMP gagal karena kesalahan perangkat keras.

IcmpError 11044

Permintaan gema ICMP gagal karena kesalahan protokol ICMP.

NoResources 11006

Permintaan gema ICMP gagal karena sumber daya jaringan yang tidak mencukupi.

PacketTooBig 11009

Permintaan gema ICMP gagal karena paket yang berisi permintaan lebih besar dari unit transmisi maksimum (MTU) simpul (router atau gateway) yang terletak di antara sumber dan tujuan. MTU mendefinisikan ukuran maksimum paket yang dapat ditransmisikan.

ParameterProblem 11015

Permintaan gema ICMP gagal karena node (router atau gateway) mengalami masalah saat memproses header paket. Ini adalah status jika, misalnya, header berisi data bidang yang tidak valid atau opsi yang tidak dikenali.

SourceQuench 11016

Permintaan gema ICMP gagal karena paket dibuang. Ini terjadi ketika antrean output komputer sumber memiliki ruang penyimpanan yang tidak mencukupi, atau ketika paket tiba di tujuan terlalu cepat untuk diproses.

Success 0

Permintaan gema ICMP berhasil; balasan gema ICMP diterima. Saat Anda mendapatkan kode status ini, properti lain PingReply berisi data yang valid.

TimedOut 11010

Balasan gema ICMP tidak diterima dalam waktu yang dialokasikan. Waktu default yang diizinkan untuk balasan adalah 5 detik. Anda dapat mengubah nilai ini menggunakan Send metode atau SendAsync yang mengambil timeout parameter.

TimeExceeded 11041

Permintaan gema ICMP gagal karena nilai Time to Live (TTL) mencapai nol, menyebabkan node penerusan (router atau gateway) membuang paket.

TtlExpired 11013

Permintaan gema ICMP gagal karena nilai Time to Live (TTL) mencapai nol, menyebabkan node penerusan (router atau gateway) membuang paket.

TtlReassemblyTimeExceeded 11014

Permintaan gema ICMP gagal karena paket dibagi menjadi fragmen untuk transmisi dan semua fragmen tidak diterima dalam waktu yang dialokasikan untuk disusun kembali. RFC 2460 menentukan 60 detik sebagai batas waktu di mana semua fragmen paket harus diterima.

Unknown -1

Permintaan gema ICMP gagal karena alasan yang tidak diketahui.

UnrecognizedNextHeader 11043

Permintaan gema ICMP gagal karena bidang Header Berikutnya tidak berisi nilai yang dikenali. Bidang Header Berikutnya menunjukkan jenis header ekstensi (jika ada) atau protokol di atas lapisan IP, misalnya, TCP atau UDP.

Contoh

Contoh kode berikut mengirimkan pesan gema ICMP dan memeriksa statusnya.

#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

Keterangan

Kelas Ping menggunakan nilai dalam enumerasi ini untuk mengatur PingReply.Status properti . Kelas Ping mengembalikan PingReply objek saat Anda memanggil Ping.Send metode atau Ping.SendAsync untuk memeriksa apakah Anda dapat menjangkau komputer di seluruh jaringan.

Peringatan

Nilai enumerasi DestinationProhibited dan DestinationProtocolUnreachable memiliki nilai numerik yang sama. Ini dimungkinkan karena DestinationProhibited hanya berlaku untuk IPv6 dan DestinationProtocolUnreachable hanya berlaku untuk IPv4.

Berlaku untuk