Я экспериментирую с pcap.net и хотел реализовать что-то, что отвечает на эхо-запросы в качестве упражнения. Операционная система уже на них реагирует, но я нормально генерирую дубликаты. Первый шаг, очевидно, даже знать, что пришел пакет ping. Я изменил пример на странице https://pcapdotnet.codeplex.com/wikipage?title=Pcap.Net%20Tutorial%20-%20Opening%20an%20adapter%20and%20capturing%20the%20packets&referringTitle=Pcap.Net.%20User%20Guide для использования следующего обработчика.
Я явно не понимаю, что происходит, потому что ни один из захваченных пакетов не находится даже в нужной подсети. Отправка пакетов ping на IP-адрес назначения не имеет значения, хотя использование ping -i 0 значительно увеличивает количество полученных пакетов (но они по-прежнему не имеют правдоподобных IP-адресов и не кажутся пакетами эхо-запроса).
Что я делаю неправильно, пожалуйста?
private static void PacketHandler(Packet packet)
{
IpV4Address dst = packet.IpV4.Destination, src = packet.IpV4.Source;
if (dst == null || src == null) return;
if (packet.IpV4.Icmp != null)
{
Console.WriteLine(packet.Timestamp.ToString("yyyy-MM-dd hh:mm:ss.fff") + " length:" + packet.Length+" "+src+" -> "+dst);
}
}