我想知道这个表达式中的输入数据是如何实际工作的。
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
位我不知道。
答案 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
解释附近解释了较短的语法)