IPStatus Enum
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
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 |
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.