我正在使用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层hava错误的pcap文件。 如何在此行之前检查tcpLayer是否为空? 谢谢
答案 0 :(得分: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;