1

我正在使用 pcap.net 从 pcap 文件中读取数据包,并在匿名化后将它们保存到新的 pcap 文件中(更改某些字段)。我有个问题。一些 pcap 文件包含不正确或不完整的数据包,例如它们没有 tcp 层或有效负载。我想知道如何检查 tcplayer 是否存在?

这是我的代码的一部分:

**TcpLayer tcpLayer = (TcpLayer)packet.Ethernet.IpV4.Tcp.ExtractLayer();                                 
UdpLayer udpLayer = (UdpLayer)packet.Ethernet.IpV4.Udp.ExtractLayer();**

这些行中没有 tcp 或 udp 层的 pcap 文件有错误。我如何检查 tcpLayer 在此行之前是否不为空?谢谢

4

1 回答 1

0

这是一些验证代码:

if (packet == null)
  return;

if (packet.Ethernet == null)
  return;

if (packet.Ethernet.EtherType != EthernetType.IpV4)
  return;

if (packet.Ethernet.IpV4 == null)
  return;

if (packet.Ethernet.IpV4.Protocol != IpV4Protocol.Tcp &&
    packet.Ethernet.IpV4.Protocol != IpV4Protocol.Udp)
  return; 

if (packet.Ethernet.IpV4.Transport == null)
  return;
于 2015-03-13T08:53:35.243 回答