SharpPcap - 如何区分收入/传出数据包?

时间:2012-06-24 20:29:37

标签: sharppcap

简介: 这个问题是关于使用SharpPcap进行数据包嗅探/发送。

  • 实际上主要的想法是:

有一个客户端应用程序与服务器端通信。我制作了一个嗅探器,记录了所有(由我的过滤器指定)数据包。现在我只想将这些数据包重新发送回服务器端..而不是来自客户端...但是通过我自己的应用程序。模拟动作的类型(假设按钮点击速度快100倍)

问题是:

1。我应该发送什么样的数据包:

  • 原始数据包?
  • SharpPcap解释数据包?(ipPacket)例如:
    var rawPacket = Packet.ParsePacket(packet.Packet.LinkLayerType, packet.Packet.Data);
    var ipPacket = IpPacket.GetEncapsulated(rawPacket);

  • The payLoadData?如果是..其payloadData?来自raw还是来自ipPacket?

2。有人可以提供一个非常好的和有效的代码。

3。如何区分它是传入还是传出的包??

感谢您的合作!

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

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