c - pcap过滤器表达式

时间:2012-07-26 13:17:17

标签: c tcp filter network-programming pcap

我想知道这个表达式中的输入数据是如何实际工作的。

char *filter = "dst host 172.17.14.90 and ip";

根据我的理解,dest host位和以下IPv4地址定义了收到的数据包应该寻址的地址。

关于这一点,手册页有点令人困惑:

  

dst主持人
  如果数据包的IPv4 / v6目标字段是主机,则为True               可以是地址或名称。

http://www.manpagez.com/man/7/pcap-filter/

这是什么意思?至于and ip位我不知道。

1 个答案:

答案 0 :(得分:5)

你是对的第一位:

dst host 172.17.14.90

表示数据包应发送到172.17.14.90

第二个:

ip

就像manpage说的缩写:

ether proto ip

表示必须使用IP协议发送数据包。

因此,总结一下:必须使用IP协议将数据包发送到IP地址为172.17.14.90的主机。


作为一个说明,使用以下内容可以更简单地表达:

ip dst host 172.17.14.90

(在联机帮助页中的host解释附近解释了较短的语法)