nDPId/examples
Toni Uhlig 5e313f43f9
Small CI/CD/nDPIsrvd.py improvements.
* Updated examples/js-rt-analyzer and examples/js-rt-analyzer-frontend

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-01-17 21:01:47 +01:00
..
c-analysed Test for diff's in flow-analyse CSV generator daemon. 2022-11-16 23:06:37 +01:00
c-captured Sync unit tests. 2022-11-13 16:19:07 +01:00
c-collectd Improved collectd risk processing to be in sync with libnDPI risks. 2023-01-11 06:28:10 +01:00
c-json-stdout Build JSMN with support for parent links. 2021-07-13 03:35:35 +02:00
c-simple Refactored client distributor C API. 2022-09-25 00:54:39 +02:00
js-rt-analyzer@44a2bd0a9d Small CI/CD/nDPIsrvd.py improvements. 2023-01-17 21:01:47 +01:00
js-rt-analyzer-frontend@6efa702a18 Small CI/CD/nDPIsrvd.py improvements. 2023-01-17 21:01:47 +01:00
py-flow-dashboard nDPId: Reduced flow-updates for TCP flows to 1/4 of the timeout value. 2022-09-19 19:39:49 +02:00
py-flow-info py-flow-info: ignore certain json lines that match various criteria 2022-12-03 01:23:26 +01:00
py-flow-muliprocess nDPId: Reduced flow-updates for TCP flows to 1/4 of the timeout value. 2022-09-19 19:39:49 +02:00
py-json-stdout nDPId: Reduced flow-updates for TCP flows to 1/4 of the timeout value. 2022-09-19 19:39:49 +02:00
py-machine-learning py-machine-learning / sklearn-random-forest: Quality Of Life improvments 2022-12-22 22:13:08 +01:00
py-schema-validation nDPId: Reduced flow-updates for TCP flows to 1/4 of the timeout value. 2022-09-19 19:39:49 +02:00
py-semantic-validation nDPid: Fixed base64encode bug which lead to invalid base64 strings. 2023-01-09 01:43:24 +01:00
ndpid_install_and_run.gif Improve README 2022-08-12 11:10:45 +02:00
README.md Added https://gitlab.com/verzulli/ndpid-rt-analyzer-frontend.git example. 2023-01-11 06:13:51 +01:00

examples

Some ready-2-use/ready-2-extend examples/utils. All examples are prefixed with their used LANG.

c-analysed

A feature extractor useful for ML/DL use cases. It generates CSV files from flow "analyse" events. Used also by tests/run_tests.sh if available.

c-captured

A capture daemon suitable for low-resource devices. It saves flows that were guessed/undetected/risky/midstream to a PCAP file for manual analysis.

c-collectd

A collecd-exec compatible middleware that gathers statistic values from nDPId.

c-json-stdout

Tiny nDPId json dumper. Does not provide any useful funcationality besides dumping parsed JSON objects.

c-simple

Integration example that verifies flow timeouts on SIGUSR1.

js-rt-analyzer

nDPId-rt-analyzer

js-rt-analyzer-frontend

nDPId-rt-analyzer-frontend

py-flow-info

Console friendly, colorful, prettyfied event printer. Required by tests/run_tests.sh

py-machine-learning

Use sklearn together with CSVs created with c-analysed to train and predict DPI detections.

Try it with: ./examples/py-machine-learning/sklearn_random_forest.py --csv ./ndpi-analysed.csv --proto-class tls.youtube --proto-class tls.github --proto-class tls.spotify --proto-class tls.facebook --proto-class tls.instagram --proto-class tls.doh_dot --proto-class quic --proto-class icmp

This way you should get 9 different classification classes. You may notice that some classes e.g. TLS protocol classifications may have a higher false-negative rate. Unfortunately, I can not provide any datasets due to some privacy concerns.

But you can use a pre-trained model with --load-model.

py-flow-dashboard

A realtime web based graph using Plotly/Dash. Probably the most informative example.

py-flow-multiprocess

Simple Python Multiprocess example spawning two worker processes, one connecting to nDPIsrvd and one printing flow id's to STDOUT.

py-json-stdout

Dump received and parsed JSON objects.

py-schema-validation

Validate nDPId JSON strings against pre-defined JSON schema's. See schema/. Required by tests/run_tests.sh

py-semantic-validation

Validate nDPId JSON strings against internal event semantics. Required by tests/run_tests.sh