次の方法で共有


Ping.Send メソッド

定義

インターネット制御メッセージ プロトコル (ICMP) エコー メッセージをリモート コンピューターに送信し、対応する ICMP エコー応答メッセージをリモート コンピューターから受信しようとします。

オーバーロード

名前 説明
Send(String, TimeSpan, Byte[], PingOptions)

指定したコンピューターにインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。

Send(String, Int32, Byte[], PingOptions)

指定したデータ バッファーを持つインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを指定したコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。 このオーバーロードを使用すると、操作のタイムアウト値を指定し、ICMP パケットの断片化と Time-to-Live 値を制御できます。

Send(IPAddress, TimeSpan, Byte[], PingOptions)

指定した IPAddressを持つコンピューターにインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。

Send(IPAddress, Int32, Byte[], PingOptions)

指定したデータ バッファーを持つインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを、指定した IPAddress を持つコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。 このオーバーロードを使用すると、操作のタイムアウト値を指定し、ICMP エコー メッセージ パケットの断片化と Time-to-Live 値を制御できます。

Send(String, Int32, Byte[])

指定したデータ バッファーを持つインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを指定したコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。 このオーバーロードを使用すると、操作のタイムアウト値を指定できます。

Send(IPAddress, Int32, Byte[])

指定したデータ バッファーを持つインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを、指定した IPAddressを持つコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。 このオーバーロードを使用すると、操作のタイムアウト値を指定できます。

Send(String, Int32)

指定したコンピューターにインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。 このメソッドを使用すると、操作のタイムアウト値を指定できます。

Send(IPAddress, Int32)

指定したデータ バッファーを持つインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを、指定した IPAddressを持つコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。 このメソッドを使用すると、操作のタイムアウト値を指定できます。

Send(String)

指定したコンピューターにインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。

Send(IPAddress)

指定した IPAddressを持つコンピューターにインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。

注釈

Sendオーバーロードによって返される IP アドレスは、悪意のあるリモート コンピューターから送信される可能性があります。 これを使用してリモート コンピューターに接続しないでください。 DNS を使用して、接続先のマシンの IP アドレスを決定します。

Send(String, TimeSpan, Byte[], PingOptions)

ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs

指定したコンピューターにインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress, TimeSpan timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options);
public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress, TimeSpan timeout, byte[]? buffer, System.Net.NetworkInformation.PingOptions? options);
member this.Send : string * TimeSpan * byte[] * System.Net.NetworkInformation.PingOptions -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String, timeout As TimeSpan, buffer As Byte(), options As PingOptions) As PingReply

パラメーター

hostNameOrAddress
String

ICMP エコー メッセージの送信先であるコンピューターを識別する String 。 このパラメーターに指定する値には、ホスト名または IP アドレスの文字列表現を指定できます。

timeout
TimeSpan

ICMP エコー応答メッセージを待機する最大時間 (エコー メッセージの送信後) を指定する値。

buffer
Byte[]

ICMP エコー メッセージと共に送信され、ICMP エコー応答メッセージで返されるデータを含む Byte 配列。 配列には 65,500 バイトを超えるバイトを含めることはできません。

options
PingOptions

ICMP エコー メッセージ パケットの断片化と Time-to-Live 値を制御するために使用される PingOptions オブジェクト。

戻り値

ICMP エコー応答メッセージ (受信した場合)、またはメッセージが受信されなかった場合のエラーの理由に関する情報。

例外

buffer または hostNameOrAddressnull されているか、 hostNameOrAddress が空の文字列 ("") です。

timeout は、0 ミリ秒未満または MaxValue ミリ秒より大きい時間を表します。

bufferのサイズが 65,500 バイトを超えています。

SendAsync の呼び出しが進行中です。

ICMP メッセージの送受信中に例外がスローされました。 スローされた正確な例外については、内部例外を参照してください。

このオブジェクトは破棄されました。

適用対象

Send(String, Int32, Byte[], PingOptions)

ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs

指定したデータ バッファーを持つインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを指定したコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。 このオーバーロードを使用すると、操作のタイムアウト値を指定し、ICMP パケットの断片化と Time-to-Live 値を制御できます。

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress, int timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options);
public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions? options);
public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options);
member this.Send : string * int * byte[] * System.Net.NetworkInformation.PingOptions -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String, timeout As Integer, buffer As Byte(), options As PingOptions) As PingReply

パラメーター

hostNameOrAddress
String

ICMP エコー メッセージの送信先であるコンピューターを識別する String 。 このパラメーターに指定する値には、ホスト名または IP アドレスの文字列表現を指定できます。

timeout
Int32

ICMP エコー応答メッセージを待機する最大ミリ秒数 (エコー メッセージの送信後) を指定する Int32 値。

buffer
Byte[]

ICMP エコー メッセージと共に送信され、ICMP エコー応答メッセージで返されるデータを含む Byte 配列。 配列には 65,500 バイトを超えるバイトを含めることはできません。

options
PingOptions

ICMP エコー メッセージ パケットの断片化と Time-to-Live 値を制御するために使用される PingOptions オブジェクト。

戻り値

受信した場合に ICMP エコー応答メッセージに関する情報を提供する PingReply オブジェクト、またはメッセージが受信されなかった場合にエラーの理由を提供するオブジェクト。

例外

bufferのサイズが 65500 バイトを超えています。

hostNameOrAddressnull または長さ 0 の文字列です。

-又は-

buffernullです。

timeout が 0 未満です。

SendAsyncの呼び出しが進行中です。

ICMP メッセージの送受信中に例外がスローされました。 スローされた正確な例外については、内部例外を参照してください。

このオブジェクトは破棄されました。

Linux 上の .NET 7 以降のバージョンのみ: プロセスは特権を持たず、 buffer は空ではありません。

次のコード例は、このメソッドを呼び出す方法を示しています。

public static void ComplexPing ()
{
    Ping pingSender = new Ping ();

    // Create a buffer of 32 bytes of data to be transmitted.
    string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    byte[] buffer = Encoding.ASCII.GetBytes (data);

    // Wait 10 seconds for a reply.
    int timeout = 10000;

    // Set options for transmission:
    // The data can go through 64 gateways or routers
    // before it is destroyed, and the data packet
    // cannot be fragmented.
    PingOptions options = new PingOptions (64, true);

    // Send the request.
    PingReply reply = pingSender.Send ("www.contoso.com", 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);
    }
    else
    {
        Console.WriteLine (reply.Status);
    }
}

注釈

timeout パラメーターで指定された時間内に ICMP エコー応答メッセージを受信しなかった場合、ICMP エコーは失敗し、Status プロパティは TimedOut に設定されます。

timeoutに非常に小さい数値を指定すると、timeout ミリ秒が経過した場合でも Ping 応答を受信できます。

DontFragment プロパティがtrueされ、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えた場合、ICMP エコー要求は失敗します。 この場合、 StatusPacketTooBigに設定されます。

Ttl プロパティを使用して、ICMP エコー メッセージを送信先に到達するまでの最大転送回数を指定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 StatusTtlExpiredに設定されます。

適用対象

Send(IPAddress, TimeSpan, Byte[], PingOptions)

ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs

指定した IPAddressを持つコンピューターにインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address, TimeSpan timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options);
public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, TimeSpan timeout, byte[]? buffer, System.Net.NetworkInformation.PingOptions? options);
member this.Send : System.Net.IPAddress * TimeSpan * byte[] * System.Net.NetworkInformation.PingOptions -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress, timeout As TimeSpan, buffer As Byte(), options As PingOptions) As PingReply

パラメーター

address
IPAddress

ICMP エコー メッセージの送信先であるコンピューターを識別する IPAddress

timeout
TimeSpan

ICMP エコー応答メッセージを待機する最大時間 (エコー メッセージの送信後) を指定する値。

buffer
Byte[]

ICMP エコー メッセージと共に送信され、ICMP エコー応答メッセージで返されるデータを含む Byte 配列。 配列には 65,500 バイトを超えるバイトを含めることはできません。

options
PingOptions

ICMP エコー メッセージ パケットの断片化と Time-to-Live 値を制御するために使用される PingOptions オブジェクト。

戻り値

ICMP エコー応答メッセージ (受信した場合)、またはメッセージが受信されなかった場合のエラーの理由に関する情報。

例外

address または buffernull

timeout は、0 ミリ秒未満または MaxValue ミリ秒より大きい時間を表します。

bufferのサイズが 65,500 バイトを超えています。

SendAsync の呼び出しが進行中です。

ICMP メッセージの送受信中に例外がスローされました。 スローされた正確な例外については、内部例外を参照してください。

このオブジェクトは破棄されました。

適用対象

Send(IPAddress, Int32, Byte[], PingOptions)

ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs

指定したデータ バッファーを持つインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを、指定した IPAddress を持つコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。 このオーバーロードを使用すると、操作のタイムアウト値を指定し、ICMP エコー メッセージ パケットの断片化と Time-to-Live 値を制御できます。

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address, int timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options);
public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions? options);
public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options);
member this.Send : System.Net.IPAddress * int * byte[] * System.Net.NetworkInformation.PingOptions -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress, timeout As Integer, buffer As Byte(), options As PingOptions) As PingReply

パラメーター

address
IPAddress

ICMP エコー メッセージの送信先であるコンピューターを識別する IPAddress

timeout
Int32

ICMP エコー応答メッセージを待機する最大ミリ秒数 (エコー メッセージの送信後) を指定する Int32 値。

buffer
Byte[]

ICMP エコー メッセージと共に送信され、ICMP エコー応答メッセージで返されるデータを含む Byte 配列。 配列には 65,500 バイトを超えるバイトを含めることはできません。

options
PingOptions

ICMP エコー メッセージ パケットの断片化と Time-to-Live 値を制御するために使用される PingOptions オブジェクト。

戻り値

ICMP エコー応答メッセージ (受信した場合) に関する情報を提供する PingReply オブジェクト。メッセージが受信されなかった場合はエラーの理由を示します。 このメソッドは、パケットが最大伝送単位 (MTU) を超えた場合に PacketTooBig を返します。

例外

bufferのサイズが 65500 バイトを超えています。

address または buffernull

timeout が 0 未満です。

SendAsyncの呼び出しが進行中です。

ICMP メッセージの送受信中に例外がスローされました。 スローされた正確な例外については、内部例外を参照してください。

このオブジェクトは破棄されました。

Linux 上の .NET 7 以降のバージョンのみ: プロセスは特権を持たず、 buffer は空ではありません。

次のコード例は、このメソッドを呼び出す方法を示しています。

public static void ComplexLocalPing ()
{
    // Ping's the local machine.
    Ping pingSender = new Ping ();
    IPAddress address = IPAddress.Loopback;

    // Create a buffer of 32 bytes of data to be transmitted.
    string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    byte[] buffer = Encoding.ASCII.GetBytes (data);

    // Wait 10 seconds for a reply.
    int timeout = 10000;

    // Set options for transmission:
    // The data can go through 64 gateways or routers
    // before it is destroyed, and the data packet
    // cannot be fragmented.
    PingOptions options = new PingOptions (64, true);
    PingReply reply = pingSender.Send (address, 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);
    }
    else
    {
        Console.WriteLine (reply.Status);
    }
}

注釈

timeout パラメーターで指定された時間内に ICMP エコー応答メッセージを受信しなかった場合、ICMP エコーは失敗し、Status プロパティは TimedOut に設定されます。

timeoutに非常に小さい数値を指定すると、timeout ミリ秒が経過した場合でも Ping 応答を受信できます。

DontFragment プロパティがtrueされ、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えた場合、ICMP エコー要求は失敗します。 この場合、 StatusPacketTooBigに設定されます。

Ttl プロパティを使用して、ICMP エコー メッセージを送信先に到達するまでの最大転送回数を指定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 StatusTtlExpiredに設定されます。

適用対象

Send(String, Int32, Byte[])

ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs

指定したデータ バッファーを持つインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを指定したコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。 このオーバーロードを使用すると、操作のタイムアウト値を指定できます。

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress, int timeout, cli::array <System::Byte> ^ buffer);
public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress, int timeout, byte[] buffer);
member this.Send : string * int * byte[] -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String, timeout As Integer, buffer As Byte()) As PingReply

パラメーター

hostNameOrAddress
String

ICMP エコー メッセージの送信先であるコンピューターを識別する String 。 このパラメーターに指定する値には、ホスト名または IP アドレスの文字列表現を指定できます。

timeout
Int32

ICMP エコー応答メッセージを待機する最大ミリ秒数 (エコー メッセージの送信後) を指定する Int32 値。

buffer
Byte[]

ICMP エコー メッセージと共に送信され、ICMP エコー応答メッセージで返されるデータを含む Byte 配列。 配列には 65,500 バイトを超えるバイトを含めることはできません。

戻り値

受信した場合に ICMP エコー応答メッセージに関する情報を提供する PingReply オブジェクト、またはメッセージが受信されなかった場合にエラーの理由を提供するオブジェクト。

例外

bufferのサイズが 65500 バイトを超えています。

hostNameOrAddressnull または空の文字列 ("") です。

-又は-

buffernullです。

timeout が 0 未満です。

SendAsyncの呼び出しが進行中です。

ICMP メッセージの送受信中に例外がスローされました。 スローされた正確な例外については、内部例外を参照してください。

このオブジェクトは破棄されました。

Linux 上の .NET 7 以降のバージョンのみ: プロセスは特権を持たず、 buffer は空ではありません。

Send オーバーロードを呼び出す方法を示す例については、Ping クラスの概要を参照してください。

注釈

timeout パラメーターで指定された時間内に ICMP エコー応答メッセージを受信しなかった場合、ICMP エコーは失敗し、Status プロパティは TimedOut に設定されます。

timeoutに非常に小さい数値を指定すると、timeout ミリ秒が経過した場合でも Ping 応答を受信できます。

このオーバーロードでは、パケットの断片化とパケット転送に既定の設定が使用されます。 ICMP エコー メッセージを含むパケットは、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えた場合に、転送中に断片化される可能性があります。 断片化を防ぐには、options パラメーターを受け取る Send メソッドのいずれかを使用し、DontFragment プロパティを true に設定します。 DontFragmenttrueされ、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えると、ICMP エコー要求は失敗します。 この場合、 StatusPacketTooBigに設定されます。

パケットまたはパケット フラグメントは、破棄される前にノードを 128 回ルーティングすることで転送できます。 この設定を変更するには、options パラメーターを受け取るSendオーバーロードを使用し、Ttl プロパティを目的の値に設定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 StatusTtlExpiredに設定されます。

適用対象

Send(IPAddress, Int32, Byte[])

ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs

指定したデータ バッファーを持つインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを、指定した IPAddressを持つコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。 このオーバーロードを使用すると、操作のタイムアウト値を指定できます。

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address, int timeout, cli::array <System::Byte> ^ buffer);
public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, int timeout, byte[] buffer);
member this.Send : System.Net.IPAddress * int * byte[] -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress, timeout As Integer, buffer As Byte()) As PingReply

パラメーター

address
IPAddress

ICMP エコー メッセージの送信先であるコンピューターを識別する IPAddress

timeout
Int32

ICMP エコー応答メッセージを待機する最大ミリ秒数 (エコー メッセージの送信後) を指定する Int32 値。

buffer
Byte[]

ICMP エコー メッセージと共に送信され、ICMP エコー応答メッセージで返されるデータを含む Byte 配列。 配列には 65,500 バイトを超えるバイトを含めることはできません。

戻り値

ICMP エコー応答メッセージ (受信した場合) に関する情報を提供する PingReply オブジェクト。メッセージが受信されなかった場合はエラーの理由を示します。 このメソッドは、パケットが最大伝送単位 (MTU) を超えた場合に PacketTooBig を返します。

例外

bufferのサイズが 65500 バイトを超えています。

address または buffernull

timeout が 0 未満です。

SendAsyncの呼び出しが進行中です。

ICMP メッセージの送受信中に例外がスローされました。 スローされた正確な例外については、内部例外を参照してください。

このオブジェクトは破棄されました。

Linux 上の .NET 7 以降のバージョンのみ: プロセスは特権を持たず、 buffer は空ではありません。

次のコード例は、このメソッドを呼び出す方法を示しています。

public static void LocalPingTimeout ()
{
    // Ping's the local machine.
    Ping pingSender = new Ping ();
    IPAddress address = IPAddress.Loopback;

    // Create a buffer of 32 bytes of data to be transmitted.
    string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    byte[] buffer = Encoding.ASCII.GetBytes (data);

    // Wait 10 seconds for a reply.
    int timeout = 10000;
    PingReply reply = pingSender.Send (address, timeout, buffer);

    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);
    }
    else
    {
        Console.WriteLine (reply.Status);
    }
}

注釈

timeout パラメーターで指定された時間内に ICMP エコー応答メッセージを受信しなかった場合、ICMP エコーは失敗し、Status プロパティは TimedOut に設定されます。

timeoutに非常に小さい数値を指定すると、timeout ミリ秒が経過した場合でも Ping 応答を受信できます。

このオーバーロードでは、パケットの断片化とパケット転送に既定の設定が使用されます。 ICMP エコー メッセージを含むパケットは、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えた場合に、転送中に断片化される可能性があります。 断片化を防ぐには、options パラメーターを受け取る Send メソッドのいずれかを使用し、DontFragment プロパティを true に設定します。 DontFragmenttrueされ、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えると、ICMP エコー要求は失敗します。 この場合、 StatusPacketTooBigに設定されます。

パケットまたはパケット フラグメントは、破棄される前にノードを 128 回ルーティングすることで転送できます。 この設定を変更するには、options パラメーターを受け取るSendオーバーロードを使用し、Ttl プロパティを目的の値に設定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 StatusTtlExpiredに設定されます。

適用対象

Send(String, Int32)

ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs

指定したコンピューターにインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。 このメソッドを使用すると、操作のタイムアウト値を指定できます。

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress, int timeout);
public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress, int timeout);
member this.Send : string * int -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String, timeout As Integer) As PingReply

パラメーター

hostNameOrAddress
String

ICMP エコー メッセージの送信先であるコンピューターを識別する String 。 このパラメーターに指定する値には、ホスト名または IP アドレスの文字列表現を指定できます。

timeout
Int32

ICMP エコー応答メッセージを待機する最大ミリ秒数 (エコー メッセージの送信後) を指定する Int32 値。

戻り値

受信した場合に ICMP エコー応答メッセージに関する情報を提供する PingReply オブジェクト、またはメッセージが受信されなかった場合にエラーの理由を提供するオブジェクト。

例外

hostNameOrAddressnull または空の文字列 ("") です。

timeout が 0 未満です。

SendAsyncの呼び出しが進行中です。

ICMP メッセージの送受信中に例外がスローされました。 スローされた正確な例外については、内部例外を参照してください。

このオブジェクトは破棄されました。

Send メソッドの呼び出しを示す例については、Ping クラスの概要を参照してください。

注釈

timeout パラメーターで指定された時間内に ICMP エコー応答メッセージを受信しなかった場合、ICMP エコーは失敗し、Status プロパティは TimedOut に設定されます。

timeoutに非常に小さい数値を指定すると、timeout ミリ秒が経過した場合でも Ping 応答を受信できます。

このオーバーロードでは、パケットの断片化とパケット転送に既定の設定が使用されます。 ICMP エコー メッセージを含むパケットは、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えた場合に、転送中に断片化される可能性があります。 断片化を防ぐには、options パラメーターを受け取る Send メソッドのいずれかを使用し、DontFragment プロパティを true に設定します。 DontFragmenttrueされ、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えると、ICMP エコー要求は失敗します。 この場合、 StatusPacketTooBigに設定されます。 パケットまたはパケット フラグメント (フラグメント化されている場合) は、破棄される前にノードを 128 回ルーティングすることで転送できます。 この設定を変更するには、options パラメーターを受け取るSendオーバーロードを使用し、Ttl プロパティを目的の値に設定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 StatusTtlExpiredに設定されます。

適用対象

Send(IPAddress, Int32)

ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs

指定したデータ バッファーを持つインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを、指定した IPAddressを持つコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。 このメソッドを使用すると、操作のタイムアウト値を指定できます。

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address, int timeout);
public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, int timeout);
member this.Send : System.Net.IPAddress * int -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress, timeout As Integer) As PingReply

パラメーター

address
IPAddress

ICMP エコー メッセージの送信先であるコンピューターを識別する IPAddress

timeout
Int32

ICMP エコー応答メッセージを待機する最大ミリ秒数 (エコー メッセージの送信後) を指定する Int32 値。

戻り値

受信した場合に ICMP エコー応答メッセージに関する情報を提供する PingReply オブジェクト、またはメッセージが受信されなかった場合にエラーの理由を提供するオブジェクト。

例外

addressnullです。

timeout が 0 未満です。

SendAsyncの呼び出しが進行中です。

ICMP メッセージの送受信中に例外がスローされました。 スローされた正確な例外については、内部例外を参照してください。

このオブジェクトは破棄されました。

Send メソッドの呼び出しを示す例については、Ping クラスの概要を参照してください。

注釈

timeout パラメーターで指定された時間内に ICMP エコー応答メッセージを受信しなかった場合、ICMP エコーは失敗し、Status プロパティは TimedOut に設定されます。

timeoutに非常に小さい数値を指定すると、timeout ミリ秒が経過した場合でも Ping 応答を受信できます。

このオーバーロードでは、パケットの断片化とパケット転送に既定の設定が使用されます。 ICMP エコー メッセージを含むパケットは、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えた場合に、転送中に断片化される可能性があります。 断片化を防ぐには、options パラメーターを受け取る Send メソッドのいずれかを使用し、DontFragment プロパティを true に設定します。 DontFragmenttrueされ、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えると、ICMP エコー要求は失敗します。 この場合、 StatusPacketTooBigに設定されます。

パケットまたはパケット フラグメントは、破棄される前にノードを 128 回ルーティングすることで転送できます。 この設定を変更するには、options パラメーターを受け取るSendオーバーロードを使用し、Ttl プロパティを目的の値に設定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 StatusTtlExpiredに設定されます。

適用対象

Send(String)

ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs

指定したコンピューターにインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress);
public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress);
member this.Send : string -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String) As PingReply

パラメーター

hostNameOrAddress
String

ICMP エコー メッセージの送信先であるコンピューターを識別する String 。 このパラメーターに指定する値には、ホスト名または IP アドレスの文字列表現を指定できます。

戻り値

ICMP エコー応答メッセージ (受信した場合) に関する情報を提供する PingReply オブジェクト。メッセージが受信されなかった場合はエラーの理由を示します。

例外

hostNameOrAddressnull または空の文字列 ("") です。

SendAsyncの呼び出しが進行中です。

ICMP メッセージの送受信中に例外がスローされました。 スローされた正確な例外については、内部例外を参照してください。

このオブジェクトは破棄されました。

次のコード例は、このメソッドの呼び出しを示しています。

public static void SimplePing ()
{
    Ping pingSender = new Ping ();
    PingReply reply = pingSender.Send ("www.contoso.com");

    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);
    }
    else
    {
        Console.WriteLine (reply.Status);
    }
}

注釈

このメソッドは、ICMP エコー メッセージを含む 32 Byte データ バッファーを送信します。 このメソッドは、ICMP エコー応答メッセージを 5 秒間待機します。 その時点で応答を受け取らない場合、メソッドは戻り、 Status プロパティは TimedOut に設定されます。

このオーバーロードでは、パケットの断片化とパケット転送に既定の設定が使用されます。 ICMP エコー メッセージを含むパケットは、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えた場合に、転送中に断片化される可能性があります。 断片化を防ぐには、options パラメーターを受け取る Send メソッドのいずれかを使用し、DontFragment プロパティを true に設定します。 DontFragmenttrueされ、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えると、ICMP エコー要求は失敗します。 この場合、 StatusPacketTooBigに設定されます。 パケットまたはパケット フラグメント (フラグメント化されている場合) は、破棄される前にノードを 128 回ルーティングすることで転送できます。 この設定を変更するには、options パラメーターを受け取るSendオーバーロードを使用し、Ttl プロパティを目的の値に設定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 StatusTtlExpiredに設定されます。

適用対象

Send(IPAddress)

ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs
ソース:
Ping.cs

指定した IPAddressを持つコンピューターにインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address);
public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address);
member this.Send : System.Net.IPAddress -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress) As PingReply

パラメーター

address
IPAddress

ICMP エコー メッセージの送信先であるコンピューターを識別する IPAddress

戻り値

ICMP エコー応答メッセージ (受信した場合) に関する情報を提供する PingReply オブジェクト、またはメッセージが受信されなかった場合のエラーの理由を示すオブジェクト。

例外

addressnullです。

SendAsyncの呼び出しが進行中です。

ICMP メッセージの送受信中に例外がスローされました。 スローされた正確な例外については、内部例外を参照してください。

このオブジェクトは破棄されました。

次のコード例は、このメソッドの呼び出しを示しています。

public static void LocalPing ()
{
    // Ping's the local machine.
    Ping pingSender = new Ping ();
    IPAddress address = IPAddress.Loopback;
    PingReply reply = pingSender.Send (address);

    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);
    }
    else
    {
        Console.WriteLine (reply.Status);
    }
}

注釈

このメソッドは、ICMP エコー メッセージを含む 32 Byte データ バッファーaddress指定されたホストに送信します。 このメソッドは、ICMP エコー応答メッセージを 5 秒間待機します。 その時点で応答を受け取らない場合、メソッドは戻り、 Status プロパティは TimedOut に設定されます。

このオーバーロードでは、パケットの断片化とパケット転送に既定の設定が使用されます。 ICMP エコー メッセージを含むパケットは、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えた場合に、転送中に断片化される可能性があります。 断片化を防ぐには、options パラメーターを受け取る Send メソッドのいずれかを使用し、DontFragment プロパティを true に設定します。 DontFragmenttrueされ、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えると、ICMP エコー要求は失敗します。 この場合、 StatusPacketTooBigに設定されます。 パケットまたはパケット フラグメント (フラグメント化されている場合) は、破棄される前にノードを 128 回ルーティングすることで転送できます。 この設定を変更するには、options パラメーターを受け取るSendオーバーロードを使用し、Ttl プロパティを目的の値に設定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 StatusTtlExpiredに設定されます。

適用対象