अपडेट पर वापस जाएँ
New releaseSep 1, 2026

nDPI v6.0

मुक्त स्रोत गहन पैकेट निरीक्षण सॉफ़्टवेयर टूलकिट

साझा करें

nDPI

Build Status Fuzzing Status

nDPI क्या है ?

nDPI® एक ओपन सोर्स LGPLv3 लाइब्रेरी है जो डीप-पैकेट निरीक्षण के लिए है।

nDPI के बारे में एक सामान्य FAQ यहाँ उपलब्ध है।

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 # Generate and check for diff's in PCAP files
  • ./tests/do-unit.sh # Run unit tests
  • ./tests/do-dga.sh # Run DGA detection test

या सभी को make check से चलाएँ।

कृपया ध्यान दें कि कंपाइलेशन के लिए (न्यूनतम) पूर्वापेक्षाएँ निम्नलिखित हैं:

  • GNU tools (autoconf automake libtool pkg-config gettext flex bison)
  • GNU C compiler (gcc) or 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

FreeBSD पर make की जगह gmake का उपयोग करना याद रखें।

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"
  1. Mingw-w64

  2. Visual Studio (windows/nDPI.sln देखें)

नोट: सभी Windows संस्करणों में WinPcap संगतता मोड सक्षम के साथ npcap की आवश्यकता होती है।

दस्तावेज़ीकरण कैसे बनाएँ

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

दस्तावेज़ीकरण देखने के लिए बिल्टइन python3 वेबसर्वर का उपयोग करें:

  • make doc-view

नया प्रोटोकॉल डिसेक्टर कैसे जोड़ें

नए प्रोटोकॉल जोड़ने की पूरी प्रक्रिया विस्तार से:

  1. नए प्रोटोकॉल को उसके अद्वितीय ID के साथ इसमें जोड़ें: src/include/ndpi_protocol_ids.h
  2. में एक नया प्रोटोकॉल बनाएँ: src/lib/protocols/
  3. पूरे फ्लो की अवधि के लिए रखे जाने वाले चर (स्टेट वेरिएबल्स) को इसमें रखा जाना चाहिए: src/include/ndpi_typedefs.h in 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 in: 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. Windows Visual Studio कॉन्फ़िगरेशन अपडेट करें, नई c फ़ाइल को windows/nDPI.vcxproj में जोड़ें।

चयनित ट्रैफ़िक को ब्लॉक करने के लिए nDPI का उपयोग कैसे करें

आप nDPI का उपयोग करके चुनिंदा इंटरनेट ट्रैफ़िक को ब्लॉक कर सकते हैं इसे किसी एप्लिकेशन में एम्बेड करके (याद रखें कि nDPI सिर्फ एक लाइब्रेरी है)। ntopng और nProbe cento दोनों ऐसा कर सकते हैं।

nDPI पेपर उद्धरण

वीडियो और प्रस्तुतियाँ

nDPI-संबंधित परियोजनाएँ

अस्वीकरण

जबकि हम नेटवर्क प्रोटोकॉल का पता लगाने के लिए अपनी पूरी कोशिश करते हैं, हम गारंटी नहीं दे सकते कि हमारा सॉफ़्टवेयर त्रुटि-मुक्त है और प्रोटोकॉल पहचान में 100% सटीक है। कृपया सुनिश्चित करें कि आप उपयोगकर्ताओं की गोपनीयता का सम्मान करते हैं और आपके पास नेटवर्क ट्रैफ़िक को सुनने, कैप्चर करने और निरीक्षण करने का उचित प्राधिकरण है।

nDPI अमेरिका और EU में एक पंजीकृत ट्रेडमार्क है।

श्रेणियाँ