SharpPcap - как отличить входящие/исходящие пакеты?

Введение. Этот вопрос касается перехвата/отправки пакетов с помощью SharpPcap.

  • Ну собственно основная идея такова:

Есть клиентское приложение, которое взаимодействует с серверной частью. Я сделал сниффер, который регистрирует все (указанные моим фильтром) пакеты. Теперь я просто хочу повторно отправить эти пакеты обратно на сервер... не со стороны клиента... а через мое собственное приложение. Тип имитации действия (скажем, нажатие кнопки в 100 раз быстрее)

Вопросы:

1. Какие пакеты я должен отправлять:

  • Сырые пакеты?
  • SharpPcap интерпретировал пакеты?(ipPacket)например:
    только var rawPacket = Packet.ParsePacket(packet.Packet.LinkLayerType, packet.Packet.Data);
    var ipPacket = IpPacket.GetEncapsulated(rawPacket);

  • The payLoadData?Если да.. чьи данные полезной нагрузки?Из необработанных данных или из ipPacket?

2. Может ли кто-нибудь предоставить действительно хороший и рабочий код.

3. Как отличить входящий пакет или исходящий??

Спасибо за сотрудничество!


person Cristian E.    schedule 24.06.2012    source источник


Ответы (1)


вы можете попробовать это:

var ipPacket = IpPacket.GetEncapsulated(rawPacket);
IPAddress localIPs = Dns.GetHostAddresses(Dns.GetHostName())[0];
if(localIPs.ToString()== ipPacket.SourceAddress.ToString())
{
//outgoing packet
}
person samer na    schedule 30.12.2012