العودة إلى التحديثات
New releaseSep 1, 2026

nDPI v6.0

مجموعة أدوات برمجية مفتوحة المصدر لفحص الحزم العميق

مشاركة

nDPI

Build Status Fuzzing Status

ما هو nDPI؟

nDPI® هي مكتبة مفتوحة المصدر مرخصة تحت LGPLv3 للفحص العميق للحزم.

يتوفر أسئلة شائعة عامة حول nDPI هنا

كيفية ترجمة nDPI

لتجميع هذا المشروع، قم بما يلي:

  • ./autogen.sh && ./configure
  • make

إذا واجهت بعض الأخطاء أثناء ترجمة croaring.c، جرب:

  • ./autogen.sh && ./configure --enable-old-croaring
  • make

لتجميع المكتبة دون أي أدوات أو اختبارات:

  • ./autogen.sh && ./configure --with-only-libndpi
  • make

البناء خارج شجرة الدليل مدعوم:

  • ./autogen.sh
  • mkdir build
  • cd build
  • ../configure && make

لتشغيل الاختبارات بالإضافة إلى ذلك:

  • ./tests/do.sh # إنشاء والتحقق من الفروقات في ملفات PCAP
  • ./tests/do-unit.sh # تشغيل اختبارات الوحدة
  • ./tests/do-dga.sh # تشغيل اختبار كشف DGA

أو تشغيل الكل بـ: make check

يرجى ملاحظة أن المتطلبات الأساسية (الدنيا) للترجمة تشمل:

  • أدوات GNU (autoconf automake libtool pkg-config gettext flex bison)
  • مترجم GNU C (gcc) أو Clang

على أنظمة Debian/Ubuntu قم بما يلي:

  • sudo apt-get install build-essential git gettext flex bison libtool autoconf automake pkg-config libpcap-dev libjson-c-dev libnuma-dev libpcre2-dev libmaxminddb-dev librrd-dev

على Arch Linux:

  • sudo pacman -S gcc git gettext flex bison libtool autoconf automake pkg-config libpcap json-c numactl pcre2 libmaxminddb rrdtool

على FreeBSD:

  • sudo pkg install gcc git gettext flex bison libtool autoconf automake devel/pkgconf gmake libpcap json-c pcre2 libmaxminddb rrdtool

تذكر استخدام gmake بدلاً من make على FreeBSD

على macOS:

  • brew install coreutils gcc git gettext flex bison libtool autoconf automake pkg-config libpcap json-c pcre2 libmaxminddb rrdtool

على Windows:

هناك ثلاث طرق مدعومة لبناء nDPI:

  1. MSYS2 (بافتراض تثبيت MSYS2 مسبقًا):

    • msys2 -c "pacman --noconfirm -S --needed --overwrite '*' git mingw-w64-x86_64-toolchain automake1.16 automake-wrapper autoconf libtool make mingw-w64-x86_64-json-c mingw-w64-x86_64-crt-git mingw-w64-x86_64-pcre2 mingw-w64-x86_64-libpcap"
  2. Mingw-w64

  3. Visual Studio (راجع windows/nDPI.sln)

ملاحظة: جميع إصدارات Windows تتطلب npcap مع تمكين وضع التوافق مع WinPcap.

كيفية بناء الوثائق

  • pip install --upgrade pip
  • pip install -r doc/requirements.txt
  • make doc

استخدم خادم الويب المدمج في python3 لعرض الوثائق:

  • make doc-view

كيفية إضافة محلل بروتوكول جديد

الإجراء الكامل لإضافة بروتوكولات جديدة بالتفصيل:

  1. أضف البروتوكول الجديد مع معرفه الفريد إلى: src/include/ndpi_protocol_ids.h
  2. أنشئ بروتوكولًا جديدًا في: src/lib/protocols/
  3. المتغيرات التي يجب الاحتفاظ بها طوال مدة التدفق بالكامل (كمتغيرات حالة) يجب وضعها في: src/include/ndpi_typedefs.h في ndpi_flow_tcp_struct (لـ TCP فقط)، أو ndpi_flow_udp_struct (لـ UDP فقط)، أو ndpi_flow_struct (لكليهما).
  4. أضف إدخالًا جديدًا لوظيفة البحث للبروتوكول الجديد في: src/include/ndpi_private.h
  5. اختر (لا تغير شيئًا) قناع بتات للاختيار من: src/include/ndpi_define.h
  6. عيّن المنافذ الافتراضية للبروتوكول في ndpi_init_protocol_defaults في: src/lib/ndpi_main.c
  7. تأكد من دعم nBPF عن طريق نسخ PF_RING في نفس الدليل حيث قمت بنسخ nDPI: git clone https://github.com/ntop/PF_RING/ && cd PF_RING/userland/nbpf && ./configure && make. يمكنك تجاهل الخطأ /bin/sh: 1: ../lib/pfring_config: not found
  8. من الدليل الجذر لـ nDPI، نفذ ./autogen.sh && ./configure --with-pcre2 (nBPF و PCRE2 عادةً اختياريان، لكنهما ضروريان لتشغيل/تحديث كل اختبارات الوحدة)
  9. make
  10. make check
  11. حدّث الوثائق بإضافة هذا البروتوكول الجديد إلى doc/protocols.rst
  12. حدّث تهيئة Visual Studio على Windows بإضافة ملف c الجديد في windows/nDPI.vcxproj

كيفية استخدام nDPI لحظر حركة المرور المحددة

يمكنك استخدام nDPI لحظر حركة مرور إنترنت محددة بشكل انتقائي عن طريق تضمينه في تطبيق (تذكر أن nDPI مجرد مكتبة). كل من ntopng و nProbe cento يمكنهما القيام بذلك.

استشهاد بورقة nDPI

فيديوهات وعروض تقديمية

مشاريع متعلقة بـ nDPI

إخلاء المسؤولية

بينما نبذل قصارى جهدنا لاكتشاف بروتوكولات الشبكة، لا يمكننا ضمان أن برنامجنا خالٍ من الأخطاء ودقيق بنسبة 100% في اكتشاف البروتوكول. يرجى التأكد من احترام خصوصية المستخدمين وأن لديك الإذن المناسب للاستماع والتقاط وفحص حركة مرور الشبكة.

nDPI هي علامة تجارية مسجلة في الولايات المتحدة والاتحاد الأوروبي.

الفئات