Управление пакетами с помощью проекта Pcap.net

Я использую Pcap.net для отправки пакетов, используя буфер отправки с файлом Wireshark (расширение pcap), и мой вопрос: есть ли способ изменить IP-адрес пакета во время или перед воспроизведением? Здесь я заполняю буфер пакетами из файла перед передачей:

int numPackets = 0;
Packet packet;
while (inputCommunicator.ReceivePacket(out packet) == PacketCommunicatorReceiveResult.Ok)
{
    ILayer layer = packet.Ethernet.ExtractLayer(); --> new layer
    sendBuffer.Enqueue(packet);
    ++numPackets;
}

1 ответ

Ответ - да.

Я верю, что обсуждение на форуме Pcap.Net поможет вам.

В общем, вам нужно извлечь все соответствующие уровни (полезную нагрузку Ethernet, IPv4 и IPv4), изменить IP уровня IPv4 и построить новый пакет.

Если вы хотите убедиться, что контрольная сумма IPv4 будет правильной, вам нужно установить в поле контрольной суммы уровня IPv4 значение null.

Если у вас есть TCP или UDP, и вы хотите убедиться, что их контрольная сумма верна, вам нужно извлечь соответствующий транспортный уровень, изменить его поле контрольной суммы на null и построить пакет из уровней Ethernet, IPv4, Transport и Transport.

Надеюсь, это поможет.

Другие вопросы по тегам