سؤال

pcap_compile() يجمع سلسلة في برنامج المرشح في شكل أ bpf_program بنية. من الناحية النظرية، يمكنني حفظ الشكل المترجمة للبرنامج وتزويدها pcap_setfilter() على واجهة شبكة مختلفة أو حتى على جهاز مختلف.

هل سيصلح هذا؟ هل bpf_program شكل محمول عبر واجهات مختلفة؟ عمليات مختلفة؟ بنية مختلفة؟ أم أنها أمانا لتجميع التعبير في كل مرة أريد استخدامها؟

بناء على وجود pcap_open_dead() أفترض أنه محمول إلى حد ما، ولكن ما هو آمن وما لا يبدو أن تهدأ في أي مكان في الوثائق.

هل كانت مفيدة؟

المحلول

لا، إنه غير محمول بشكل عام.

يمكنك استخدامها على نفس الجهاز.

على الآلات مماثلة بأمان إلى حد ما. بنية مختلفة؟ على الاغلب لا. ربما إذا كان لديهم أنواع مماثلة. أنظمة التشغيل المختلفة؟ لا، لا أوصي بأي من هذه.

إذا كنت تريد حقا أن تكون متأكدا، قم بتجميع التعبير عند استخدامه. حقا يأخذ كمية غير مهمة من الوقت إذا كنت تفعل ذلك نادرا ما يكفي. إذا كنت تقوم بتبديل التعبيرات بسرعة، فقد ترغب في الاحتفاظ ببعضها البعض.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top