
مكتبة مستقلة عن نظام التشغيل لالتقاط حزم البيانات وتصفيتها على مستوى المستخدم. توفر إطار عمل محمولًا لمراقبة الشبكة على المستوى المنخفض، وتحليل الأمان، وتصحيح الأخطاء عبر منصات متعددة.
للإبلاغ عن مشكلة أمنية، يرجى إرسال بريد إلكتروني إلى [email protected].
للإبلاغ عن الأخطاء والمشاكل الأخرى، أو المساهمة بالتصحيحات، أو طلب ميزة، أو تقديم ملاحظات عامة، وما إلى ذلك، يرجى الاطلاع على إرشادات المساهمة.
يحتوي دليل التوثيق على ملفات README حول أنظمة تشغيل وخيارات محددة.
يتوفر الوصول المجهول إلى Git عبر:
https://github.com/the-tcpdump-group/libpcap.git
يحتوي هذا الدليل على الكود المصدري لـ libpcap، وهي واجهة مستقلة عن النظام لالتقاط الحزم على مستوى المستخدم. يوفر libpcap إطار عمل محمول لمراقبة الشبكات على مستوى منخفض. تشمل التطبيقات جمع إحصائيات الشبكة، ومراقبة الأمان، وتصحيح أخطاء الشبكة، وما إلى ذلك. نظرًا لأن كل مورّد أنظمة تقريبًا يوفر واجهة مختلفة لالتقاط الحزم، ولأننا طوّرنا عدة أدوات تتطلب هذه الوظيفة، أنشأنا واجهة برمجة التطبيقات المستقلة عن النظام هذه لتسهيل النقل ولتخفيف الحاجة إلى عدة وحدات لالتقاط الحزم تعتمد على النظام في كل تطبيق.
formerly from Lawrence Berkeley National Laboratory
Network Research Group <[email protected]>
ftp://ftp.ee.lbl.gov/old/libpcap-0.4a7.tar.Z
بالنسبة لبعض المنصات، توجد ملفات README.{system} تناقش المشكلات
المتعلقة بواجهة نظام التشغيل لالتقاط الحزم على تلك المنصات، مثل
كيفية تمكين دعم تلك الواجهة في نظام التشغيل، إذا لم تكن مدمجة
افتراضيًا.
تدعم واجهة libpcap آلية تصفية مبنية على البنية في مرشح حزم BSD. تم وصف BPF في ورقة Usenix الشتوية لعام 1993 ``The BSD Packet Filter: A New Architecture for User-level Packet Capture'' (PostScript مضغوط, PostScript مضغوط بـ gzip, PDF).
على الرغم من أن معظم واجهات التقاط الحزم تدعم بعض التصفية داخل النواة، فإن libpcap يستخدم التصفية داخل النواة فقط لحالات الاستخدام التي تدعم برامج BPF، وهي واجهة التقاط الحزم BPF، ومقبس حزم Linux وواجهة GNU/Hurd.
في جميع الحالات الأخرى، يقرأ libpcap كل حزمة في مساحة المستخدم و يقيّمها باستخدام برنامج التصفية، مما يترتب عليه تكلفة إضافية (خاصةً للمرشحات الانتقائية). من الناحية المثالية، كان libpcap سيترجم مرشحات BPF إلى برنامج تصفية متوافق مع النظام الفرعي للنواة الأساسي، ولكن هذا غير منفذ.
تعد BPF معيارًا في NetBSD وFreeBSD وOpenBSD وDragonFly BSD وmacOS وQNX و Solaris 11؛ وتعد نسخة أقدم ومعدّلة وغير موثقة معيارًا في AIX.
لدى Linux عددًا من الأنظمة المبنية على BPF، ولا يدعم libpcap أيًا من آليات eBPF حتى الآن، على الرغم من أنه يدعم العديد من آليات الاستقبال بتعيين الذاكرة. راجع README الخاص بـ Linux لمزيد من المعلومات.
يوجد الآن قاعدة لإنشاء مكتبة مشتركة، والتي يجب أن تعمل على Linux و*BSD، من بين منصات أخرى.
تقوم بتعيين الاسم المشترك (soname) للمكتبة إلى libpcap.so.1؛ وهذا ما
ينبغي أن يكون عليه، وليس libpcap.so.1.x أو libpcap.so.1.x.y أو ما شابه
ذلك.
لقد حافظنا على التوافق الثنائي بين إصدارات libpcap منذ فترة طويلة؛ فلا يوجد سبب لربط ملف ثنائي مرتبط بـ libpcap بإصدار معين من libpcap.