Question

pcap_compile() compile une chaîne dans un programme de filtre sous la forme d'une structure de bpf_program. En théorie, je pourrais sauver la forme compilée du programme et de fournir à pcap_setfilter() sur une interface réseau différente ou même sur une autre machine.

Est-ce que le travail? Le portable sous forme de bpf_program à travers différentes interfaces? Différents processus? Différentes architectures? Ou est-il plus sûr de compiler l'expression chaque fois que je veux l'utiliser?

Sur la base de l'existence de pcap_open_dead() je suppose qu'il est un peu portable, mais ce qui est sûr et ce qui ne ne semble pas être orthographié nulle part dans la documentation.

Était-ce utile?

La solution

Non, ce n'est pas portable en général.

Vous pouvez les utiliser sur la même machine.

Sur les machines similaires un peu en toute sécurité. Différentes architectures? Probablement pas. Peut-être que si elles ont des types similaires. Différents systèmes d'exploitation? Non, je ne recommande pas de ces bien.

Si vous voulez vraiment être sûr, compiler simplement l'expression lorsque vous l'utilisez. Il faut vraiment une quantité de temps sans conséquence si vous faites assez rarement. Si vous passez des expressions rapidement, vous voudrez peut-être garder quelques autour.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top