在C#中侦听ICMP数据包的方法是通过使用Ping类。Ping类提供了一种简单的方法来发送ICMP Echo Request消息并等待ICMP Echo Reply回复。以下是一个简单的示例,演示如何使用Ping类侦听ICMP数据包:
using System;
using System.Net.NetworkInformation;
namespace ICMP_Listener
{
class Program
{
static void Main(string[] args)
{
Ping pingSender = new Ping();
string host = "www.example.com";
try
{
PingReply reply = pingSender.Send(host);
if (reply.Status == IPStatus.Success)
{
Console.WriteLine("Address: {0}", reply.Address.ToString());
Console.WriteLine("RoundTrip time: {0}", reply.RoundtripTime);
}
else
{
Console.WriteLine("Ping failed: {0}", reply.Status);
}
}
catch (PingException ex)
{
Console.WriteLine("Ping failed: {0}", ex.ToString());
}
}
}
}
在这个示例中,我们创建了一个Ping对象,并指定了要发送ICMP Echo Request消息的目标主机。然后,我们调用Ping.Send方法发送请求并等待回复。如果回复成功,我们将打印出目标主机的IP地址和往返时间。否则,我们将打印出错误消息。
需要注意的是,Ping类只能用于发送和接收ICMP Echo Request和ICMP Echo Reply消息。如果您需要侦听其他类型的ICMP数据包,您需要使用其他方法。
领取专属 10元无门槛券
手把手带您无忧上云