Вопрос

pcap_compile() компилируют строку в программу фильтров в виде bpf_program структура Теоретически я мог бы сохранить составленную форму программы и предоставить ее pcap_setfilter() на другом сетевом интерфейсе или даже на другой машине.

Это сработает? Это bpf_program формируйте портативные по разным интерфейсам? Разные процессы? Разные архитектуры? Или это безопасно для составления выражения каждый раз, когда я хочу его использовать?

На основании существования pcap_open_dead() Я предполагаю, что это несколько портативно, но то, что безопасно, а что нет, не кажется, нигде в документации.

Это было полезно?

Решение

Нет, в целом это не портативно.

Вы можете использовать их на той же машине.

На аналогичных машинах несколько безопасно. Разные архитектуры? Возможно нет. Может быть, если у них есть похожие типы. Разные операционные системы? Нет. Я не рекомендую ничего из этого, хотя.

Если вы действительно хотите быть уверенным, просто составьте выражение, когда вы его используете. Это действительно занимает несущественное количество времени, если вы делаете это редко. Если вы быстро переключаете выражения, вы можете держать несколько вокруг.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top