Управление пакетами с помощью проекта Pcap.net - PullRequest
1 голос
/ 28 марта 2012

Я использую 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 Ответ

1 голос
/ 30 марта 2012

Ответ - да.

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

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

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

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

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

...