Ping.Send メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ICMP (インターネット制御メッセージ プロトコル) エコー メッセージをリモート コンピューターに送信し、そのリモート コンピューターから対応する ICMP エコー応答メッセージを受信します。
オーバーロード
Send(String, TimeSpan, Byte[], PingOptions) |
インターネット制御メッセージ プロトコル (ICMP) エコー メッセージを指定されたコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。 |
Send(String, Int32, Byte[], PingOptions) |
指定されたデータ バッファーと共に ICMP (インターネット制御メッセージ プロトコル) エコー メッセージを指定されたコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信します。 このオーバーロードを使用して、操作のタイムアウト値を指定し、ICMP パケットのフラグメンテーションと有効期間 (TTL: time-to-live) 値を制御できます。 |
Send(IPAddress, TimeSpan, Byte[], PingOptions) |
指定した IPAddressを持つコンピューターにインターネット制御メッセージ プロトコル (ICMP) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信しようとします。 |
Send(IPAddress, Int32, Byte[], PingOptions) |
指定された IPAddress を持つコンピューターに、指定されたデータ バッファーと共に ICMP (インターネット制御メッセージ プロトコル) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信します。 このオーバーロードを使用して、操作のタイムアウト値を指定し、ICMP エコー メッセージ パケットのフラグメンテーションと有効期間 (TTL: time-to-live) の値を制御できます。 |
Send(String, Int32, Byte[]) |
指定されたデータ バッファーと共に ICMP (インターネット制御メッセージ プロトコル) エコー メッセージを指定されたコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信します。 このオーバーロードを使用して、操作のタイムアウト値を指定できます。 |
Send(IPAddress, Int32, Byte[]) |
指定された IPAddress を持つコンピューターに、指定されたデータ バッファーと共に ICMP (インターネット制御メッセージ プロトコル) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信します。 このオーバーロードを使用して、操作のタイムアウト値を指定できます。 |
Send(String, Int32) |
ICMP (インターネット制御メッセージ プロトコル) エコー メッセージを指定されたコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信します。 このメソッドを使用して、操作のタイムアウト値を指定できます。 |
Send(IPAddress, Int32) |
指定された IPAddress を持つコンピューターに、指定されたデータ バッファーと共に ICMP (インターネット制御メッセージ プロトコル) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信します。 このメソッドを使用して、操作のタイムアウト値を指定できます。 |
Send(String) |
ICMP (インターネット制御メッセージ プロトコル) エコー メッセージを指定されたコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信します。 |
Send(IPAddress) |
指定した IPAddress を持つコンピューターに ICMP (インターネット制御メッセージ プロトコル) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信します。 |
注釈
いずれかの Send オーバーロードによって返される IP アドレスは、悪意のあるリモート コンピューターから生成される可能性があります。 これを使用してリモート コンピューターに接続しないでください。 DNS を使用して、接続先のマシンの IP アドレスを確認します。
Send(String, TimeSpan, Byte[], PingOptions)
インターネット制御メッセージ プロトコル (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 エコー メッセージ パケットのフラグメンテーションと有効期間 (TTL: time-to-live) の値を制御するために使用される PingOptions オブジェクト。
戻り値
ICMP エコー応答メッセージ (受信した場合)、またはメッセージが受信されなかった場合のエラーの理由に関する情報。
例外
buffer
または hostNameOrAddress
が または hostNameOrAddress
null
が空の文字列 ("") です。
timeout
は、0 ミリ秒未満またはミリ秒より MaxValue 大きい時間を表します。
buffer
のサイズが 65,500 バイトを超えています。
SendAsync の呼び出しが進行中です。
ICMP メッセージの送信中または受信中に例外がスローされました。 スローされた実際の例外については内部例外を参照してください。
このオブジェクトは破棄されました。
適用対象
Send(String, Int32, Byte[], PingOptions)
指定されたデータ バッファーと共に ICMP (インターネット制御メッセージ プロトコル) エコー メッセージを指定されたコンピューターに送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信します。 このオーバーロードを使用して、操作のタイムアウト値を指定し、ICMP パケットのフラグメンテーションと有効期間 (TTL: 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 アドレスの文字列形式を指定できます。
- buffer
- Byte[]
ICMP エコー メッセージと共に送信されるデータが格納され、ICMP エコー応答メッセージで返される Byte 配列。 配列には、65,500 バイトを超えるデータを格納することはできません。
- options
- PingOptions
ICMP エコー メッセージ パケットのフラグメンテーションと有効期間 (TTL: time-to-live) の値を制御するために使用される PingOptions オブジェクト。
戻り値
ICMP エコー応答メッセージが受信された場合は、そのメッセージに関する情報を提供し、メッセージが受信されなかった場合は、エラーの原因を提供する PingReply オブジェクト。
例外
buffer
のサイズが 65500 バイトを超えています。
timeout
が 0 未満です。
SendAsync の呼び出しを実行中です。
ICMP メッセージの送信中または受信中に例外がスローされました。 スローされた実際の例外については内部例外を参照してください。
このオブジェクトは破棄されました。
Linux 上の .NET 7 以降のバージョンのみ: プロセスは特権を持たず、 buffer
空ではありません。
例
次のコード例は、このメソッドを呼び出す方法を示しています。
void ComplexPing()
{
Ping ^ pingSender = gcnew Ping;
// Create a buffer of 32 bytes of data to be transmitted.
String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
array<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 = gcnew 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 );
}
}
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 エコー要求は失敗します。 この場合、 Status は に PacketTooBig設定されます。
プロパティを Ttl 使用して、ICMP エコー メッセージを送信先に到達するまでに転送できる最大回数を指定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 Status は に TtlExpired設定されます。
適用対象
Send(IPAddress, TimeSpan, Byte[], PingOptions)
指定した 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
パラメーター
- timeout
- TimeSpan
ICMP エコー応答メッセージを待機する最大時間 (エコー メッセージの送信後) を指定する 値。
- buffer
- Byte[]
ICMP エコー メッセージと共に送信されるデータが格納され、ICMP エコー応答メッセージで返される Byte 配列。 配列には、65,500 バイトを超えるデータを格納することはできません。
- options
- PingOptions
ICMP エコー メッセージ パケットのフラグメンテーションと有効期間 (TTL: time-to-live) の値を制御するために使用される PingOptions オブジェクト。
戻り値
ICMP エコー応答メッセージ (受信した場合)、またはメッセージが受信されなかった場合のエラーの理由に関する情報。
例外
address
または buffer
が null
です。
timeout
は、0 ミリ秒未満またはミリ秒より MaxValue 大きい時間を表します。
buffer
のサイズが 65,500 バイトを超えています。
SendAsync の呼び出しが進行中です。
ICMP メッセージの送信中または受信中に例外がスローされました。 スローされた実際の例外については内部例外を参照してください。
このオブジェクトは破棄されました。
適用対象
Send(IPAddress, Int32, Byte[], PingOptions)
指定された IPAddress を持つコンピューターに、指定されたデータ バッファーと共に ICMP (インターネット制御メッセージ プロトコル) エコー メッセージを送信し、そのコンピューターから対応する ICMP エコー応答メッセージを受信します。 このオーバーロードを使用して、操作のタイムアウト値を指定し、ICMP エコー メッセージ パケットのフラグメンテーションと有効期間 (TTL: 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
パラメーター
- buffer
- Byte[]
ICMP エコー メッセージと共に送信されるデータが格納され、ICMP エコー応答メッセージで返される Byte 配列。 配列には、65,500 バイトを超えるデータを格納することはできません。
- options
- PingOptions
ICMP エコー メッセージ パケットのフラグメンテーションと有効期間 (TTL: time-to-live) の値を制御するために使用される PingOptions オブジェクト。
戻り値
ICMP エコー応答メッセージが受信された場合は、そのメッセージに関する情報を提供し、メッセージが受信されなかった場合は、エラーの原因を提供する PingReply オブジェクト。 パケットが MTU (Maximum Transmission Unit) を超えている場合、このメソッドは PacketTooBig を返します。
例外
buffer
のサイズが 65500 バイトを超えています。
address
または buffer
が null
です。
timeout
が 0 未満です。
SendAsync の呼び出しを実行中です。
ICMP メッセージの送信中または受信中に例外がスローされました。 スローされた実際の例外については内部例外を参照してください。
このオブジェクトは破棄されました。
Linux 上の .NET 7 以降のバージョンのみ: プロセスは特権を持たず、 buffer
空ではありません。
例
次のコード例は、このメソッドを呼び出す方法を示しています。
void ComplexLocalPing()
{
// Ping's the local machine.
Ping ^ pingSender = gcnew Ping;
IPAddress^ address = IPAddress::Loopback;
// Create a buffer of 32 bytes of data to be transmitted.
String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
array<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 = gcnew 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 );
}
}
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
、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードのいずれかによって送信できる最大パケット サイズを超えた場合、ICMP エコー要求は失敗します。 この場合、 Status は に PacketTooBig設定されます。
プロパティを Ttl 使用して、ICMP エコー メッセージを転送先に到達するまでに転送できる最大回数を指定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 Status は に TtlExpired設定されます。
適用対象
Send(String, Int32, Byte[])
指定されたデータ バッファーと共に 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 アドレスの文字列形式を指定できます。
- buffer
- Byte[]
ICMP エコー メッセージと共に送信されるデータが格納され、ICMP エコー応答メッセージで返される Byte 配列。 配列には、65,500 バイトを超えるデータを格納することはできません。
戻り値
ICMP エコー応答メッセージが受信された場合は、そのメッセージに関する情報を提供し、メッセージが受信されなかった場合は、エラーの原因を提供する PingReply オブジェクト。
例外
buffer
のサイズが 65500 バイトを超えています。
timeout
が 0 未満です。
SendAsync の呼び出しを実行中です。
ICMP メッセージの送信中または受信中に例外がスローされました。 スローされた実際の例外については内部例外を参照してください。
このオブジェクトは破棄されました。
Linux 上の .NET 7 以降のバージョンのみ: プロセスは特権を持たず、 buffer
空ではありません。
例
オーバーロードを呼び出す Send 方法を示す例については、クラスの概要に関するページを Ping 参照してください。
注釈
パラメーターで指定された timeout
時間内に ICMP エコー応答メッセージが受信されない場合、ICMP エコーは失敗し Status 、 プロパティは に TimedOut設定されます。
注意
に非常に小さい数値 timeout
を指定すると、ミリ秒が経過した場合 timeout
でも Ping 応答を受信できます。
このオーバーロードでは、パケットの断片化とパケット転送に既定の設定が使用されます。 ICMP エコー メッセージを含むパケットは、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードのいずれかによって送信できる最大パケット サイズを超えた場合に、転送中に断片化される可能性があります。 断片化を防ぐには、 パラメーターを Send 受け取る options
メソッドのいずれかを使用し、 プロパティを DontFragment に true
設定します。 DontFragmentが でtrue
、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードのいずれかによって送信できる最大パケット サイズを超えると、ICMP エコー要求は失敗します。 この場合、 Status は に PacketTooBig設定されます。
パケットまたはパケット フラグメントは、破棄される前にノードを 128 回ルーティングすることで転送できます。 この設定を変更するには、パラメーターを Send 受け取るオーバーロードを options
使用し、 プロパティを Ttl 目的の値に設定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 Status は に TtlExpired設定されます。
適用対象
Send(IPAddress, Int32, Byte[])
指定された IPAddress を持つコンピューターに、指定されたデータ バッファーと共に ICMP (インターネット制御メッセージ プロトコル) エコー メッセージを送信し、そのコンピューターから対応する 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
パラメーター
- buffer
- Byte[]
ICMP エコー メッセージと共に送信されるデータが格納され、ICMP エコー応答メッセージで返される Byte 配列。 配列には、65,500 バイトを超えるデータを格納することはできません。
戻り値
ICMP エコー応答メッセージが受信された場合は、そのメッセージに関する情報を提供し、メッセージが受信されなかった場合は、エラーの原因を提供する PingReply オブジェクト。 パケットが MTU (Maximum Transmission Unit) を超えている場合、このメソッドは PacketTooBig を返します。
例外
buffer
のサイズが 65500 バイトを超えています。
address
または buffer
が null
です。
timeout
が 0 未満です。
SendAsync の呼び出しを実行中です。
ICMP メッセージの送信中または受信中に例外がスローされました。 スローされた実際の例外については内部例外を参照してください。
このオブジェクトは破棄されました。
Linux 上の .NET 7 以降のバージョンのみ: プロセスは特権を持たず、 buffer
空ではありません。
例
次のコード例では、このメソッドを呼び出す方法を示します。
void LocalPingTimeout()
{
// Ping's the local machine.
Ping ^ pingSender = gcnew Ping;
IPAddress^ address = IPAddress::Loopback;
// Create a buffer of 32 bytes of data to be transmitted.
String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
array<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 );
}
}
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 エコー メッセージを含むパケットは、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードのいずれかによって送信できる最大パケット サイズを超えた場合に、転送中に断片化される可能性があります。 断片化を防ぐには、 パラメーターを Send 受け取る options
メソッドのいずれかを使用し、 プロパティを DontFragment に true
設定します。 DontFragmentが でtrue
、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードのいずれかによって送信できる最大パケット サイズを超えると、ICMP エコー要求は失敗します。 この場合、 Status は に PacketTooBig設定されます。
パケットまたはパケット フラグメントは、破棄される前にノードを 128 回ルーティングすることで転送できます。 この設定を変更するには、パラメーターを Send 受け取るオーバーロードを options
使用し、 プロパティを Ttl 目的の値に設定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 Status は に TtlExpired設定されます。
適用対象
Send(String, Int32)
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 アドレスの文字列形式を指定できます。
戻り値
ICMP エコー応答メッセージが受信された場合は、そのメッセージに関する情報を提供し、メッセージが受信されなかった場合は、エラーの原因を提供する PingReply オブジェクト。
例外
hostNameOrAddress
が null
または空の文字列 ("") です。
timeout
が 0 未満です。
SendAsync の呼び出しを実行中です。
ICMP メッセージの送信中または受信中に例外がスローされました。 スローされた実際の例外については内部例外を参照してください。
このオブジェクトは破棄されました。
例
メソッドの呼び出し Send を示す例については、クラスの概要に関するページを Ping 参照してください。
注釈
パラメーターで指定された timeout
時間内に ICMP エコー応答メッセージが受信されない場合、ICMP エコーは失敗し Status 、 プロパティは に TimedOut設定されます。
注意
に非常に小さい数値 timeout
を指定すると、ミリ秒が経過した場合 timeout
でも Ping 応答を受信できます。
このオーバーロードでは、パケットの断片化とパケット転送に既定の設定が使用されます。 ICMP エコー メッセージを含むパケットは、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードのいずれかによって送信できる最大パケット サイズを超えた場合に、転送中に断片化される可能性があります。 断片化を防ぐには、 パラメーターを Send 受け取る options
メソッドのいずれかを使用し、 プロパティを DontFragment に true
設定します。 DontFragmentが でtrue
、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードのいずれかによって送信できる最大パケット サイズを超えると、ICMP エコー要求は失敗します。 この場合、 Status は に PacketTooBig設定されます。 パケットまたはパケット フラグメント (フラグメント化されている場合) は、破棄される前にノードを 128 回ルーティングすることで転送できます。 この設定を変更するには、パラメーターを Send 受け取るオーバーロードを options
使用し、 プロパティを Ttl 目的の値に設定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 Status は に TtlExpired設定されます。
適用対象
Send(IPAddress, Int32)
指定された IPAddress を持つコンピューターに、指定されたデータ バッファーと共に ICMP (インターネット制御メッセージ プロトコル) エコー メッセージを送信し、そのコンピューターから対応する 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
パラメーター
戻り値
ICMP エコー応答メッセージが受信された場合は、そのメッセージに関する情報を提供し、メッセージが受信されなかった場合は、エラーの原因を提供する PingReply オブジェクト。
例外
address
が null
です。
timeout
が 0 未満です。
SendAsync の呼び出しを実行中です。
ICMP メッセージの送信中または受信中に例外がスローされました。 スローされた実際の例外については内部例外を参照してください。
このオブジェクトは破棄されました。
例
メソッドの呼び出し Send を示す例については、クラスの概要に関するページを Ping 参照してください。
注釈
パラメーターで指定された timeout
時間内に ICMP エコー応答メッセージが受信されない場合、ICMP エコーは失敗し Status 、 プロパティは に TimedOut設定されます。
注意
に非常に小さい数値 timeout
を指定すると、ミリ秒が経過した場合 timeout
でも Ping 応答を受信できます。
このオーバーロードでは、パケットの断片化とパケット転送に既定の設定が使用されます。 ICMP エコー メッセージを含むパケットは、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えた場合に、転送中に断片化される可能性があります。 断片化を防ぐには、 パラメーターを Send 受け取る options
メソッドのいずれかを使用し、 プロパティを DontFragment に true
設定します。 DontFragmentが でtrue
、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えると、ICMP エコー要求は失敗します。 この場合、 Status は に PacketTooBig設定されます。
パケットまたはパケット フラグメントは、破棄される前にノードを 128 回ルーティングすることによって転送できます。 この設定を変更するには、パラメーターを Send 受け取るオーバーロードを options
使用し、 プロパティを Ttl 目的の値に設定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 Status は に TtlExpired設定されます。
適用対象
Send(String)
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 オブジェクト。
例外
hostNameOrAddress
が null
または空の文字列 ("") です。
SendAsync の呼び出しを実行中です。
ICMP メッセージの送信中または受信中に例外がスローされました。 スローされた実際の例外については内部例外を参照してください。
このオブジェクトは破棄されました。
例
次のコード例は、このメソッドの呼び出しを示しています。
void SimplePing()
{
Ping ^ pingSender = gcnew 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 );
}
}
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 つによって送信できる最大パケット サイズを超えた場合に、転送中に断片化される可能性があります。 断片化を防ぐには、 パラメーターを Send 受け取る options
メソッドのいずれかを使用し、 プロパティを DontFragment に true
設定します。 DontFragmentが でtrue
、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えると、ICMP エコー要求は失敗します。 この場合、 Status は に PacketTooBig設定されます。 パケットまたはパケット フラグメント (フラグメント化されている場合) は、破棄される前にノードを 128 回ルーティングすることで転送できます。 この設定を変更するには、パラメーターを Send 受け取るオーバーロードを options
使用し、 プロパティを Ttl 目的の値に設定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 Status は に TtlExpired設定されます。
適用対象
Send(IPAddress)
指定した 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
パラメーター
戻り値
ICMP エコー応答メッセージが受信された場合は、そのメッセージに関する情報を提供し、メッセージが受信されなかった場合は、エラー原因の説明を提供する PingReply オブジェクト。
例外
address
が null
です。
SendAsync の呼び出しを実行中です。
ICMP メッセージの送信中または受信中に例外がスローされました。 スローされた実際の例外については内部例外を参照してください。
このオブジェクトは破棄されました。
例
次のコード例は、このメソッドの呼び出しを示しています。
void LocalPing()
{
// Ping's the local machine.
Ping ^ pingSender = gcnew 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 );
}
}
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 つによって送信できる最大パケット サイズを超えた場合に、転送中に断片化される可能性があります。 断片化を防ぐには、 パラメーターを Send 受け取る options
メソッドのいずれかを使用し、 プロパティを DontFragment に true
設定します。 DontFragmentが でtrue
、合計パケット サイズが、ローカル コンピューターとリモート コンピューター間のルーティング ノードの 1 つによって送信できる最大パケット サイズを超えると、ICMP エコー要求は失敗します。 この場合、 Status は に PacketTooBig設定されます。 パケットまたはパケット フラグメント (フラグメント化されている場合) は、破棄される前にノードを 128 回ルーティングすることで転送できます。 この設定を変更するには、パラメーターを Send 受け取るオーバーロードを options
使用し、 プロパティを Ttl 目的の値に設定します。 指定した回数だけ転送された後にパケットが宛先に到達しない場合、パケットは破棄され、ICMP エコー要求は失敗します。 この場合、 Status は に TtlExpired設定されます。
適用対象
.NET
フィードバック
https://aka.ms/ContentUserFeedback。
近日公開予定: 2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub イシューを段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、以下を参照してください:フィードバックの送信と表示