nDPI® is an open source LGPLv3 library for deep-packet inspection. Based on OpenDPI it includes ntop extensions. We have tried to push them into the OpenDPI source tree but nobody answered emails, so we have decided to create our own source tree
A generic FAQ about nDPI® is available here
In order to compile this project do
To compile the library w/o any tools or tests:
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:
MSYS2 (assuming MSYS2 already installed):
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.h
src/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_protocols.h
src/include/ndpi_define.h
ndpi_init_protocol_defaults
in: src/lib/ndpi_main.c
PF_RING
in the same directory where you cloned nDPI
: git clone https://github.com/ntop/PF_RING/ && cd PF_RING/userland/nbpf && ./configure && make
. You can ignore the /bin/sh: 1: ../lib/pfring_config: not found
errornDPI
root directory, ./autogen.sh --with-pcre2
(nBPF and PCRE2 are usually optional, but they are needed to run/update all the unit tests)make
make check
doc/protocols.rst
windows/nDPI.vcxproj
You 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.