使用Pcap通过以太网捕获数据包

时间:2014-06-09 09:36:14

标签: capture packet pcap.net

我正在构建一个GUI来通过以太网捕获数据包。

我希望以Byte []的形式传递接收到的数据包及其长度,通过一个函数进行进一步处理(以提取有关以太网,IPv4和UDP协议的各种信息)。所以我想问一下pcapdot.net采用哪种格式的数据包,即byte []或任何其他格式。

Packet packet;
do
{
    PacketCommunicatorReceiveResult result = communicator.ReceivePacket(out packet);
    switch (result)
    {
        case PacketCommunicatorReceiveResult.Timeout:
            // Timeout elapsed
            continue;
        case PacketCommunicatorReceiveResult.Ok:
            Console.WriteLine(packet.Timestamp.ToString("yyyy-MM-dd hh:mm:ss.fff") + " length:" +
                              packet.Length);
            **ParseData(packet,packet.Length);**// **I WANT TO CALL THIS FUNCTION**
            break;
        default:
            throw new InvalidOperationException("The result " + result + " shoudl never be reached here");
    }
} while (true);

1 个答案:

答案 0 :(得分:0)

您只需调用Packet类的Buffer属性即可。

基本上是这样的:

ParseData(packet.Buffer,packet.Length);