【问题标题】:check if TcpLayer or udpLayer is not null检查 TcpLayer 或 udpLayer 是否不为空
【发布时间】:2015-05-04 09:00:12
【问题描述】:

我正在使用 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 在此行之前是否不为空? 谢谢

【问题讨论】:

    标签: c# tcp pcap.net


    【解决方案1】:

    这是一些验证码:

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 2023-03-30
      • 2012-12-16
      • 2015-06-05
      • 1970-01-01
      • 2020-05-29
      • 1970-01-01
      相关资源
      最近更新 更多