方法1: System.Net.NetworkInformation.Ping クラスを使用する方法
using System;
using System.Net.NetworkInformation;
public class PingExample
{
public static void Main()
{
string hostNameOrAddress = "example.com";
Ping pingSender = new Ping();
PingReply reply = pingSender.Send(hostNameOrAddress);
if (reply.Status == IPStatus.Success)
{
Console.WriteLine("Ping 成功 - 応答時間: " + reply.RoundtripTime + "ms");
}
else
{
Console.WriteLine("Ping 失敗 - エラーコード: " + reply.Status);
}
}
}
この例では、Ping
クラスを使用して指定したホスト名または IP アドレスに対してPingを送信し、応答を受け取ります。
方法2: System.Net.Sockets.Socket クラスを使用する方法
using System;
using System.Net;
using System.Net.Sockets;
public class PingExample
{
public static void Main()
{
string hostNameOrAddress = "example.com";
IPAddress ipAddress = Dns.GetHostEntry(hostNameOrAddress).AddressList[0];
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp);
byte[] buffer = new byte[32];
EndPoint endPoint = new IPEndPoint(ipAddress, 0);
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 1000);
socket.Connect(endPoint);
socket.Send(buffer);
socket.Receive(buffer);
Console.WriteLine("Ping 成功");
}
}
この例では、Socket
クラスを使用してリモートホストに対してICMPメッセージを送信し、応答を受け取ります。
これらの例では、Pingの結果をコンソールに表示していますが、必要に応じて結果をフォーム上に表示することもできます。