Domanda

pcap_compile() compila una stringa in un programma filtro nella forma di una struttura bpf_program. In teoria avrei potuto salvare il modulo compilato del programma e fornire a pcap_setfilter() su una diversa interfaccia di rete o anche su una macchina diversa.

Sarà che il lavoro? È la forma portatile bpf_program attraverso interfacce diverse? Diversi processi? Diverse architetture? O è più sicuro per compilare l'espressione ogni volta che voglio usarlo?

In base all'esistenza di pcap_open_dead() Suppongo che sia un po 'portatile, ma ciò che è sicuro e cosa non lo è non sembra essere scritto da nessuna parte nella documentazione.

È stato utile?

Soluzione

No, non è portatile in generale.

Si possono utilizzare sulla stessa macchina.

Su macchine simili un po 'in tutta sicurezza. Diverse architetture? Probabilmente no. Forse se hanno tipi simili. Sistemi operativi diversi? No. Non consiglio uno di questi però.

Se davvero si vuole essere sicuri, basta compilare l'espressione quando lo si utilizza. Ci vuole davvero una quantità insignificante di tempo se si sta facendo abbastanza raramente. Se stai passando rapidamente le espressioni, si potrebbe desiderare di mantenere pochi intorno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top