2015-03-03 2 views
1

Я использую pcap.net для чтения пакетов из файла pcap и сохранения их в новый файл pcap после анонимности (изменение некоторых полей). у меня проблема. некоторые файлы pcap имеют неправильные или неполные пакеты, например, они не имеют tcp-слоя или полезной нагрузки. Я хочу знать, как проверить, существует ли tcplayer?проверить, нет ли TcpLayer или udpLayer null

это часть моего кода:

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

в PCAP файлы, которые не имеют TCP или UDP ошибки слоя Хава в этих линиях. Как я могу проверить, не является ли tcpLayer пустым до этой строки? благодаря

ответ

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; 
Смежные вопросы