Wireshark显示过滤器,用于唯一源/目标IP和协议

时间:2014-08-21 17:26:57

标签: wireshark

我需要创建一个显示过滤器,执行以下操作:对于每个源IP地址,列出所有目标IP地址,但仅列出每个目标IP地址的唯一协议。

换句话说,我想只看到每个唯一的一行数据: ip.src = X,ip.dst = Y,protocol = Z

我想创建此过滤器,使其涵盖所有源IP,因此我不必为每个源IP地址创建单独的过滤器。

我需要在“批处理”模式下为许多PCAP文件执行上述操作。如果在Wireshark GUI中无法做到这一点,那么我想要一个命令行(tshark)解决方案。

1 个答案:

答案 0 :(得分:0)

当我以前做过那种事情时,我通常使用tshark来提取数据,然后使用其他工具(Python,Perl,awk等)来进一步细化结果数据。因此,考虑到这种方法,您可以使用:

tshark -r mysample.pcapng.gz -2 -Tfields -eip.src -eip.dst -eframe.protocols

使用该命令行,您将获得这些字段,但请注意某些行(例如具有ARP数据包的行)将不具有IP地址(因为它们不是IP数据包),以及IPv6数据包不会显示IP地址,因为这些字段名称(ip.srcip.dst)仅适用于IPv4。以下是我碰巧使用的捕获文件的示例输出:

10.68.40.152    224.0.0.252 eth:ethertype:ip:udp:dns
10.68.40.119    255.255.255.255 eth:ethertype:ip:udp:db-lsp-disc
10.68.40.119    10.68.41.255    eth:ethertype:ip:udp:db-lsp-disc
        eth:ethertype:arp
10.68.40.152    224.0.0.252 eth:ethertype:ip:udp:dns
10.68.40.65 10.68.41.255    eth:ethertype:ip:udp:nbns
        eth:ethertype:ipv6:ipv6.nxt:udp:dns
        eth:ethertype:ipv6:ipv6.nxt:udp:dns

如果您希望消除非IPv4数据包,只需添加一个过滤器:

tshark -r mysample.pcapng.gz -2 -Tfields -R ip -eip.src -eip.dst -eframe.protocols

在Linux(我使用的)下,您可以轻松地将其输出传输到各种其他实用程序中。例如,如果将其附加到该命令行:

|sort -n |uniq -c |sort -n 

您将按照频率的升序列出样本文件中存在的每个唯一src,dst和proto组合的列表。