IPStatus 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
インターネット コントロール メッセージ プロトコル (ICMP) エコー メッセージのコンピューターへの送信ステータスを報告します。
public enum class IPStatus
public enum IPStatus
type IPStatus =
Public Enum IPStatus
- 継承
フィールド
BadDestination | 11018 | 送信先の IP アドレスが ICMP エコー要求を受信できないため、または IP データグラムの終点アドレス フィールドに指定できない値であるために、ICMP エコー要求は失敗しました。 たとえば、Send を呼び出し、IP アドレス "000.0.0.0" を指定すると、このステータスが返されます。 |
BadHeader | 11042 | ヘッダーが無効なため、ICMP エコー要求は失敗しました。 |
BadOption | 11007 | 無効なオプションが含まれているため、ICMP エコー要求は失敗しました。 |
BadRoute | 11012 | 送信元コンピューターと送信先コンピューターの間に有効な経路がないため、ICMP エコー要求は失敗しました。 |
DestinationHostUnreachable | 11003 | 送信先コンピューターに到達できないため、ICMP エコー要求は失敗しました。 |
DestinationNetworkUnreachable | 11002 | 送信先コンピューターが含まれるネットワークに到達できないため、ICMP エコー要求は失敗しました。 |
DestinationPortUnreachable | 11005 | 送信先コンピューターのポートが利用できないため、ICMP エコー要求は失敗しました。 |
DestinationProhibited | 11004 | 送信先コンピューターとの通信が管理上禁止されているため、ICMPv エコー要求は失敗しました。 この値は IPv6 にのみ適用されます。 |
DestinationProtocolUnreachable | 11004 | ICMP エコー メッセージに指定された送信先コンピューターが、パケットのプロトコルをサポートしておらず到達できないため、ICMP エコー要求は失敗しました。 この値は IPv4 にのみ適用されます。 この値は、管理者によって通信が禁止されていることが IETF RFC 1812 に記述されています。 |
DestinationScopeMismatch | 11045 | ICMP エコー メッセージに指定された送信元アドレスと終点アドレスが同じスコープにないため、ICMP エコー要求は失敗しました。 これは通常、送信元アドレスのスコープ外にあるインターフェイスを使用してパケットを転送するルーターが原因で発生します。 あるアドレスがネットワーク上で有効な範囲は、アドレス スコープ (リンクローカル、サイトローカル、グローバル スコープ) によって決まります。 |
DestinationUnreachable | 11040 | ICMP エコー メッセージに指定された送信先コンピューターに到達できないため、ICMP エコー要求は失敗しました。問題の詳細な原因は不明です。 |
HardwareError | 11008 | ハードウェア エラーのため、ICMP エコー要求は失敗しました。 |
IcmpError | 11044 | ICMP プロトコル エラーのため、ICMP エコー要求は失敗しました。 |
NoResources | 11006 | ネットワーク リソースの不足のため、ICMP エコー要求は失敗しました。 |
PacketTooBig | 11009 | 要求を格納しているパケットが、送信元と送信先の間にあるノード (ルーターまたはゲートウェイ) の MTU (Maximum Transmission Unit) よりも大きいため、ICMP エコー要求は失敗しました。 MTU は、送信できるパケットの最大サイズを定義します。 |
ParameterProblem | 11015 | パケット ヘッダーの処理中にノード (ルーターまたはゲートウェイ) で問題が発生したため、ICMP エコー要求は失敗しました。 たとえば、ヘッダーに無効なフィールド データや認識できないオプションが含まれている場合、このステータスになります。 |
SourceQuench | 11016 | パケットが破棄されたため、ICMP エコー要求は失敗しました。 これは、送信元コンピューターの出力キューに十分なストレージ領域がない場合や、送信先に到達するパケットの量が多すぎて処理しきれない場合に発生します。 |
Success | 0 | ICMP エコー要求は成功しました。ICMP エコー応答が受信されました。 このステータス コードを取得した場合、他の PingReply プロパティに有効なデータが格納されています。 |
TimedOut | 11010 | 割り当てられた時間内に ICMP エコー応答が受信されませんでした。 各応答に割り当てられる既定の時間は 5 秒です。 この値は、 |
TimeExceeded | 11041 | 有効期間 (TTL: time-to-live) の値が 0 に達し、転送を行うノード (ルーターまたはゲートウェイ) でパケットが破棄されたため、ICMP エコー要求は失敗しました。 |
TtlExpired | 11013 | 有効期間 (TTL: time-to-live) の値が 0 に達し、転送を行うノード (ルーターまたはゲートウェイ) でパケットが破棄されたため、ICMP エコー要求は失敗しました。 |
TtlReassemblyTimeExceeded | 11014 | 伝送用に分割されたパケットのフラグメントが、再アセンブルの割り当て時間内にすべて受信されなかったため、ICMP エコー要求は失敗しました。 RFC 2460 では、すべてのパケットのフラグメントは、60 秒以内に受信される必要があると指定されています。 |
Unknown | -1 | 不明な理由のために ICMP エコー要求は失敗しました。 |
UnrecognizedNextHeader | 11043 | 認識される値が Next Header フィールドに含まれていないため、ICMP エコー要求は失敗しました。 Next Header フィールドは、拡張ヘッダーの種類 (存在する場合) や、TCP か UDP などの IP 層より上のプロトコルを示します。 |
例
次のコード例では、ICMP エコー メッセージを送信し、状態を確認します。
#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
注釈
クラスは Ping 、この列挙体の値を使用して プロパティを PingReply.Status 設定します。 クラスはPing、 メソッドまたは Ping.SendAsync メソッドを呼び出Ping.Sendして、ネットワーク経由でコンピューターに到達できるかどうかをチェックするときにオブジェクトPingReplyを返します。
警告
DestinationProhibited 列挙値と DestinationProtocolUnreachable 列挙値の数値は同じです。 これは、DestinationProhibited が IPv6 にのみ適用され、DestinationProtocolUnreachable が IPv4 にのみ適用されるためです。
適用対象
.NET