Primeiro, observe que você está trabalhando com os filtros display do Wireshark, separados (e muito diferentes) dos filtros de captura da libpcap. (A própria libpcap tem um filtro udp
, mas só entende muito poucos protocolos. Então você estará capturando tudo, mas filtrando a lista exibida.)
No Wireshark, a seção "Frame" tem vários metadados sobre o pacote dissecado, por exemplo:
Protocols in frame: eth:ethertype:ip:udp:dns
Isso corresponde ao campo frame.protocols
. Agora, aplique uma correspondência regex usando ~
ou matches
:
udp && frame.protocols ~ ":udp$"
Isso corresponderá a todos os pacotes em que o último protocolo reconhecido foi UDP (por exemplo, frame.protocols
termina com o texto :udp
). Tenha cuidado - algum tráfego pode ser detectado como um protocolo obscuro, mesmo que não seja.
(O prefixo udp &&
é uma otimização - uma correspondência de protocolo pode ser mais eficiente para descartar tráfego não UDP do que uma correspondência de expressão de cadeia de caracteres.)