Frage

pcap_compile() Kompiliert eine Zeichenfolge in ein Filterprogramm in Form von a bpf_program Struktur. Theoretisch konnte ich die kompilierte Form des Programms retten und es angeben pcap_setfilter() auf einer anderen Netzwerkschnittstelle oder sogar auf einer anderen Maschine.

Wird es funktionieren? Ist der bpf_program Tragbar über verschiedene Schnittstellen bilden? Verschiedene Prozesse? Verschiedene Architekturen? Oder ist es am sichersten, den Ausdruck jedes Mal zu kompilieren, wenn ich ihn verwenden möchte?

Basierend auf der Existenz von pcap_open_dead() Ich gehe davon aus, dass es etwas tragbar ist, aber was sicher ist und was nicht nirgendwo in der Dokumentation geschrieben zu sein scheint.

War es hilfreich?

Lösung

Nein, es ist im Allgemeinen nicht tragbar.

Sie können sie auf derselben Maschine verwenden.

Auf ähnliche Maschinen etwas sicher. Verschiedene Architekturen? Wahrscheinlich nicht. Vielleicht, wenn sie ähnliche Typen haben. Verschiedene Betriebssysteme? Nein, ich empfehle jedoch keine davon.

Wenn Sie wirklich sicher sein möchten, kompilieren Sie einfach den Ausdruck, wenn Sie ihn verwenden. Es braucht wirklich eine belanglose Zeit, wenn Sie es selten genug tun. Wenn Sie die Ausdrücke schnell wechseln, möchten Sie vielleicht einige in der Nähe halten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top