
Open Source Deep Packet Inspection Software Toolkit
nDPI® is an open source LGPLv3 library for deep-packet inspection.
A generic FAQ about nDPI is available here
In order to compile this project do
If you get some errors while compiling croaring.c, try:
To compile the library w/o any tools or tests:
Out-of-tree builds are supported:
To run tests do additionally:
or run all with: make check
Please note that the (minimal) pre-requisites for compilation include:
On Debian/Ubuntu systems do:
On Arch Linux:
On FreeBSD:
Remember to use gmake and not make on FreeBSD
On MacOS:
On Windows:
There are three supported ways to build nDPI:
Mingw-w64
Visual Studio (see windows/nDPI.sln)
Note: All Windows versions require npcap with WinPcap compatibility mode enabled.
Use the builtin python3 webserver to view documentation:
The entire procedure of adding new protocols in detail:
src/include/ndpi_protocol_ids.hsrc/lib/protocols/src/include/ndpi_typedefs.h in ndpi_flow_tcp_struct (for TCP only), ndpi_flow_udp_struct (for UDP only), or ndpi_flow_struct (for both).src/include/ndpi_private.hsrc/include/ndpi_define.hndpi_init_protocol_defaults in: src/lib/ndpi_main.cPF_RING in the same directory where you cloned nDPI: . You can ignore the errorYou can use nDPI to selectively block selected Internet traffic by embedding it onto an application (remember that nDPI is just a library). Both ntopng and nProbe cento can do this.
While we do our best to detect network protocols, we cannot guarantee that our software is error free and 100% accurate in protocol detection. Please make sure that you respect the privacy of users and you have proper authorization to listen, capture and inspect network traffic.
nDPI is a registered trademark in the US and EU.
git clone https://github.com/ntop/PF_RING/ && cd PF_RING/userland/nbpf && ./configure && make/bin/sh: 1: ../lib/pfring_config: not foundnDPI root directory, ./autogen.sh && ./configure --with-pcre2 (nBPF and PCRE2 are usually optional, but they are needed to run/update all the unit tests)makemake checkdoc/protocols.rstwindows/nDPI.vcxproj