PingOptions クラス


Ping データ パケットの転送方法を制御するために使用します。Used to control how Ping data packets are transmitted.

public ref class PingOptions
public class PingOptions
type PingOptions = class
Public Class PingOptions

次のコード例では、PingPingOptions、および PingReply クラスを使用して、コマンドラインで指定されたホストに ICMP エコー要求を送信します。The following code example uses the Ping, PingOptions and PingReply classes to send an ICMP echo request to the host specified on the command line.

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


PingOptions クラスには、インターネット制御メッセージプロトコル (ICMP) エコー要求パケットの転送方法を制御するための TtlDontFragment のプロパティが用意されています。The PingOptions class provides the Ttl and DontFragment properties to control how Internet Control Message Protocol (ICMP) echo request packets are transmitted.

Ttl プロパティは、Ping クラスによって送信されるパケットの Time to Live を指定します。The Ttl property specifies the Time to Live for packets sent by the Ping class. この値は、パケットが破棄される前に Ping パケットを転送できるルーティングノードの数を示します。This value indicates the number of routing nodes that can forward a Ping packet before it is discarded. このオプションを設定すると、送信元コンピューターから送信先コンピューターにパケットを送信するために、ホップとも呼ばれる転送の数をテストする場合に便利です。Setting this option is useful if you want to test the number of forwards, also known as hops, are required to send a packet from a source computer to a destination computer.

DontFragment プロパティは、リモートホストに送信されるデータを複数のパケットに分割できるかどうかを制御します。The DontFragment property controls whether data sent to a remote host can be divided into multiple packets. このオプションは、パケットの送信に使用されるルーターとゲートウェイの最大転送単位 (MTU) をテストする場合に便利です。This option is useful if you want to test the maximum transmission unit (MTU) of the routers and gateways used to transmit the packet.

PingOptions クラスのインスタンスは Send メソッドと SendAsync メソッドに渡され、PingReply クラスは PingOptions プロパティを使用して Options のインスタンスを返します。Instances of the PingOptions class are passed to the Send and SendAsync methods, and the PingReply class returns instances of PingOptions via the Options property.

PingOptionsのインスタンスの初期プロパティ値の一覧については、PingOptions コンストラクターを参照してください。For a list of initial property values for an instance of PingOptions, see the PingOptions constructor.


PingOptions() PingOptions クラスの新しいインスタンスを初期化します。Initializes a new instance of the PingOptions class.
PingOptions(Int32, Boolean)

PingOptions クラスの新しいインスタンスを初期化し、有効期間 (TTL) とフラグメンテーションの値を設定します。Initializes a new instance of the PingOptions class and sets the Time to Live and fragmentation values.



リモート ホストに送信するデータのフラグメンテーションを制御する Boolean 値を取得または設定します。Gets or sets a Boolean value that controls fragmentation of the data sent to the remote host.


Ping データが破棄される前に、そのデータを転送できるルーティング ノードの数を取得または設定します。Gets or sets the number of routing nodes that can forward the Ping data before it is discarded.



指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)