C#コンソールアプリケーションから、コマンドプロンプトを開き、pingユーティリティを確認しました。
string aptracommand;
aptracommand = "/C ping 10.38.2.73";
Process.Start(@"cmd",aptracommand);
ここで、ping要求がタイムアウトした場合は条件ステートメントを適用する必要があり、「接続できません」と表示され、pingできる場合は「サーバーが起動しています」と表示される必要があります。
C#コンソールアプリケーションから、コマンドプロンプトを開き、pingユーティリティを確認しました。
string aptracommand;
aptracommand = "/C ping 10.38.2.73";
Process.Start(@"cmd",aptracommand);
ここで、ping要求がタイムアウトした場合は条件ステートメントを適用する必要があり、「接続できません」と表示され、pingできる場合は「サーバーが起動しています」と表示される必要があります。
この目的でPingクラスを使用できます。以下に述べるように:
using System.Net.NetworkInformation;
var ping = new Ping();
var reply = ping.Send("10.38.2.73", 60 * 1000); // 1 minute time out (in ms)
if (reply.Status == IPStatus.Success)
{
Console.WriteLine("Server is up");
}
else
{
Console.WriteLine("Server is down");
}
タイムアウト値を減らして、サーバーが稼働しているか停止しているかをすばやく確認できます。
代わりにこれを使用してください
Ping pingSender = new Ping ();
byte[] data = Encoding.ASCII.GetBytes ("test");
int timeout = 100;
PingReply reply = pingSender.Send("127.0.0.1", timeout, data);
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);
}
出力をキャプチャし、タイムアウト文字列の存在を確認して、それに基づいて決定を下す必要があると思います。