IPStatus 列挙型

定義

インターネット コントロール メッセージ プロトコル (ICMP) エコー メッセージのコンピューターへの送信ステータスを報告します。Reports the status of sending an Internet Control Message Protocol (ICMP) echo message to a computer.

public enum class IPStatus
public enum IPStatus
type IPStatus = 
Public Enum IPStatus
継承
IPStatus

フィールド

BadDestination 11018

送信先の IP アドレスが ICMP エコー要求を受信できないため、または IP データグラムの終点アドレス フィールドに指定できない値であるために、ICMP エコー要求は失敗しました。The ICMP echo request failed because the destination IP address cannot receive ICMP echo requests or should never appear in the destination address field of any IP datagram. たとえば、Send を呼び出し、IP アドレス "000.0.0.0" を指定すると、このステータスが返されます。For example, calling Send and specifying IP address "000.0.0.0" returns this status.

BadHeader 11042

ヘッダーが無効なため、ICMP エコー要求は失敗しました。The ICMP echo request failed because the header is invalid.

BadOption 11007

無効なオプションが含まれているため、ICMP エコー要求は失敗しました。The ICMP echo request failed because it contains an invalid option.

BadRoute 11012

送信元コンピューターと送信先コンピューターの間に有効な経路がないため、ICMP エコー要求は失敗しました。The ICMP echo request failed because there is no valid route between the source and destination computers.

DestinationHostUnreachable 11003

送信先コンピューターに到達できないため、ICMP エコー要求は失敗しました。The ICMP echo request failed because the destination computer is not reachable.

DestinationNetworkUnreachable 11002

送信先コンピューターが含まれるネットワークに到達できないため、ICMP エコー要求は失敗しました。The ICMP echo request failed because the network that contains the destination computer is not reachable.

DestinationPortUnreachable 11005

送信先コンピューターのポートが利用できないため、ICMP エコー要求は失敗しました。The ICMP echo request failed because the port on the destination computer is not available.

DestinationProhibited 11004

送信先コンピューターとの通信が管理上禁止されているため、ICMPv エコー要求は失敗しました。The ICMPv6 echo request failed because contact with the destination computer is administratively prohibited. この値は IPv6 にのみ適用されます。This value applies only to IPv6.

DestinationProtocolUnreachable 11004

ICMP エコー メッセージに指定された送信先コンピューターが、パケットのプロトコルをサポートしておらず到達できないため、ICMP エコー要求は失敗しました。The ICMP echo request failed because the destination computer that is specified in an ICMP echo message is not reachable, because it does not support the packet's protocol. この値は IPv4 にのみ適用されます。This value applies only to IPv4. この値は、管理者によって通信が禁止されていることが IETF RFC 1812 に記述されています。This value is described in IETF RFC 1812 as Communication Administratively Prohibited.

DestinationScopeMismatch 11045

ICMP エコー メッセージに指定された送信元アドレスと終点アドレスが同じスコープにないため、ICMP エコー要求は失敗しました。The ICMP echo request failed because the source address and destination address that are specified in an ICMP echo message are not in the same scope. これは通常、送信元アドレスのスコープ外にあるインターフェイスを使用してパケットを転送するルーターが原因で発生します。This is typically caused by a router forwarding a packet using an interface that is outside the scope of the source address. あるアドレスがネットワーク上で有効な範囲は、アドレス スコープ (リンクローカル、サイトローカル、グローバル スコープ) によって決まります。Address scopes (link-local, site-local, and global scope) determine where on the network an address is valid.

DestinationUnreachable 11040

ICMP エコー メッセージに指定された送信先コンピューターに到達できないため、ICMP エコー要求は失敗しました。問題の詳細な原因は不明です。The ICMP echo request failed because the destination computer that is specified in an ICMP echo message is not reachable; the exact cause of problem is unknown.

HardwareError 11008

ハードウェア エラーのため、ICMP エコー要求は失敗しました。The ICMP echo request failed because of a hardware error.

IcmpError 11044

ICMP プロトコル エラーのため、ICMP エコー要求は失敗しました。The ICMP echo request failed because of an ICMP protocol error.

NoResources 11006

ネットワーク リソースの不足のため、ICMP エコー要求は失敗しました。The ICMP echo request failed because of insufficient network resources.

PacketTooBig 11009

要求を格納しているパケットが、送信元と送信先の間にあるノード (ルーターまたはゲートウェイ) の MTU (Maximum Transmission Unit) よりも大きいため、ICMP エコー要求は失敗しました。The ICMP echo request failed because the packet containing the request is larger than the maximum transmission unit (MTU) of a node (router or gateway) located between the source and destination. MTU は、送信できるパケットの最大サイズを定義します。The MTU defines the maximum size of a transmittable packet.

ParameterProblem 11015

パケット ヘッダーの処理中にノード (ルーターまたはゲートウェイ) で問題が発生したため、ICMP エコー要求は失敗しました。The ICMP echo request failed because a node (router or gateway) encountered problems while processing the packet header. たとえば、ヘッダーに無効なフィールド データや認識できないオプションが含まれている場合、このステータスになります。This is the status if, for example, the header contains invalid field data or an unrecognized option.

SourceQuench 11016

パケットが破棄されたため、ICMP エコー要求は失敗しました。The ICMP echo request failed because the packet was discarded. これは、送信元コンピューターの出力キューに十分なストレージ領域がない場合や、送信先に到達するパケットの量が多すぎて処理しきれない場合に発生します。This occurs when the source computer's output queue has insufficient storage space, or when packets arrive at the destination too quickly to be processed.

Success 0

ICMP エコー要求は成功しました。ICMP エコー応答が受信されました。The ICMP echo request succeeded; an ICMP echo reply was received. このステータス コードを取得した場合、他の PingReply プロパティに有効なデータが格納されています。When you get this status code, the other PingReply properties contain valid data.

TimedOut 11010

割り当てられた時間内に ICMP エコー応答が受信されませんでした。The ICMP echo Reply was not received within the allotted time. 各応答に割り当てられる既定の時間は 5 秒です。The default time allowed for replies is 5 seconds. この値は、Send パラメーターを受け取る SendAsync メソッドまたは timeout メソッドを使用して変更できます。You can change this value using the Send or SendAsync methods that take a timeout parameter.

TimeExceeded 11041

有効期間 (TTL: time-to-live) の値が 0 に達し、転送を行うノード (ルーターまたはゲートウェイ) でパケットが破棄されたため、ICMP エコー要求は失敗しました。The ICMP echo request failed because its Time to Live (TTL) value reached zero, causing the forwarding node (router or gateway) to discard the packet.

TtlExpired 11013

有効期間 (TTL: time-to-live) の値が 0 に達し、転送を行うノード (ルーターまたはゲートウェイ) でパケットが破棄されたため、ICMP エコー要求は失敗しました。The ICMP echo request failed because its Time to Live (TTL) value reached zero, causing the forwarding node (router or gateway) to discard the packet.

TtlReassemblyTimeExceeded 11014

伝送用に分割されたパケットのフラグメントが、再アセンブルの割り当て時間内にすべて受信されなかったため、ICMP エコー要求は失敗しました。The ICMP echo request failed because the packet was divided into fragments for transmission and all of the fragments were not received within the time allotted for reassembly. RFC 2460 では、すべてのパケットのフラグメントは、60 秒以内に受信される必要があると指定されています。RFC 2460 specifies 60 seconds as the time limit within which all packet fragments must be received.

Unknown -1

不明な理由のために ICMP エコー要求は失敗しました。The ICMP echo request failed for an unknown reason.

UnrecognizedNextHeader 11043

認識される値が Next Header フィールドに含まれていないため、ICMP エコー要求は失敗しました。The ICMP echo request failed because the Next Header field does not contain a recognized value. Next Header フィールドは、拡張ヘッダーの種類 (存在する場合) や、TCP か UDP などの IP 層より上のプロトコルを示します。The Next Header field indicates the extension header type (if present) or the protocol above the IP layer, for example, TCP or UDP.

次のコード例では、ICMP エコーメッセージを送信し、状態を確認します。The following code example sends an ICMP echo message and checks the status.

#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);
            }
        }
    }
}

注釈

Ping クラスは、この列挙体の値を使用して PingReply.Status プロパティを設定します。The Ping class uses the values in this enumeration to set the PingReply.Status property. Ping クラスは、Ping.Send または Ping.SendAsync メソッドを呼び出して、ネットワーク経由でコンピューターに接続できるかどうかを確認するときに PingReply オブジェクトを返します。The Ping class returns PingReply objects when you call the Ping.Send or Ping.SendAsync methods to check whether you can reach a computer across the network.

警告

DestinationProhibited と Destinationprotocol到達不能の列挙値には、同じ数値が設定されています。The DestinationProhibited and DestinationProtocolUnreachable enumeration values have the same numeric value. これが可能なのは、DestinationProhibited が IPv6 のみに適用され、Destinationprotocol到達不能が IPv4 にのみ適用されるためです。This is possible because DestinationProhibited applies only to IPv6 and DestinationProtocolUnreachable applies only to IPv4.

適用対象