pcap_compile()
以bpf_program
结构的形式将字符串编译为过滤器程序。从理论上讲,我可以保存程序的编译形式,并将其提供给pcap_setfilter()
在不同的网络接口上,甚至是在不同的机器上。
那会有用吗? bpf_program
表单是否可以跨不同的接口移植?不同的流程?不同的架构?或者每次我想使用它时编译表达式最安全吗?
基于pcap_open_dead()
的存在,我认为它有点便携,但是在文档中的任何地方似乎都没有说明什么是安全的,什么不是。
答案 0 :(得分:1)
不,一般来说它不便携。
您可以在同一台计算机上使用它们。
在类似的机器上有点安全。 不同的架构?可能不是。也许他们有类似的类型。 不同的操作系统?不,我不推荐任何这些。
如果你真的想确定,只需在使用时编译表达式。如果你做的很少,那真的需要花费很多时间。如果你快速切换表达式,你可能想要保持一些。