Skip to main content

A flexible and powerful network data analysis library

Project description

build doc quality release python license

nfstream is a flexible and lightweight network data analysis library.

nfstream main features

  • Performance: nfstream was designed to be fast with a small CPU and memory footprint.

  • Layer-7 visibility: nfstream dissection is based on nDPI (~300 applications including Tor, Messenger, WhatsApp, etc.).

  • Flexibility: add a flow metric in 2 lines of code using nfstream plugins method.

  • Machine Learning oriented: add your trained model as an NFStreamClassifier.

Use

  • Dealing with a big pcap file and just want to aggregate it as network flows? nfstream make this path easier in few lines:

from nfstream.streamer import Streamer
my_capture_streamer = Streamer(source="instagram.pcap") # or capture from a network interface
for flow in my_capture_streamer:  # or for flow in my_live_streamer
    print(flow)  # print, append to pandas Dataframe or whatever you want :)!
  • Didn’t find a specific flow feature? add a plugin to the Streamer in few lines:

def my_awesome_plugin(packet_information, flow, direction):
 if packet_information.length > 666:
     return flow.metrics['count_pkts_gt_666'] + 1

streamer_awesome = Streamer(source='devil.pcap', user_metrics={'count_pkts_gt_666': my_awesome_plugin})
for export in streamer_awesome:
   print(export.metrics['count_pkts_gt_666']) # now you will see your created metric in generated flows
  • More example and details are provided on the official Documentation.

Getting Started

Prerequisites

apt-get install python-dev install pypy3-dev libpcap-dev

Installation

using pip

Binary installers for the latest released version are available:

pip3 install nfstream

from source

If you want to build nfstream on your local machine:

apt-get install autogen
git clone https://github.com/aouinizied/nfstream.git
# move to nfstream directory and run
python3 setup.py install

Contributing

Please read Contributing for details on our code of conduct, and the process for submitting pull requests to us.

Authors

Zied Aouini (aouinizied) created nfstream and these fine people have contributed.

License

This project is licensed under the GPLv3 License - see the License file for details

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

nfstream-1.1.0-cp37-cp37m-macosx_10_7_x86_64.whl (220.0 kB view details)

Uploaded CPython 3.7m macOS 10.7+ x86-64

nfstream-1.1.0-cp36-cp36m-macosx_10_7_x86_64.whl (220.0 kB view details)

Uploaded CPython 3.6m macOS 10.7+ x86-64

nfstream-1.1.0-cp35-cp35m-macosx_10_6_x86_64.whl (220.0 kB view details)

Uploaded CPython 3.5m macOS 10.6+ x86-64

File details

Details for the file nfstream-1.1.0-cp37-cp37m-macosx_10_7_x86_64.whl.

File metadata

  • Download URL: nfstream-1.1.0-cp37-cp37m-macosx_10_7_x86_64.whl
  • Upload date:
  • Size: 220.0 kB
  • Tags: CPython 3.7m, macOS 10.7+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0.post20191030 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.5

File hashes

Hashes for nfstream-1.1.0-cp37-cp37m-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 3e4f601bd2c447db894c9f1e7e8b68c4570ec4c708b62a648d466db5d2896c74
MD5 2a3a0dd64f3108ab59220a0896cf2e05
BLAKE2b-256 9bef8780f73dde4bc93dbf25752d0295b86715b69ab798153aba93ce0c381b14

See more details on using hashes here.

File details

Details for the file nfstream-1.1.0-cp36-cp36m-macosx_10_7_x86_64.whl.

File metadata

  • Download URL: nfstream-1.1.0-cp36-cp36m-macosx_10_7_x86_64.whl
  • Upload date:
  • Size: 220.0 kB
  • Tags: CPython 3.6m, macOS 10.7+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0.post20191030 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.6.9

File hashes

Hashes for nfstream-1.1.0-cp36-cp36m-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 2e6e7d5cccbb2f1f21ae25604eb6f7d8608ac485ff1b48be8fbec9f85644b0f2
MD5 d6276a72b73d798e3c9c2219d57e6e21
BLAKE2b-256 574730f16fff932a65c4701676eb022380eda8ff2e3455d9da28ef65c3b7bea9

See more details on using hashes here.

File details

Details for the file nfstream-1.1.0-cp35-cp35m-macosx_10_6_x86_64.whl.

File metadata

  • Download URL: nfstream-1.1.0-cp35-cp35m-macosx_10_6_x86_64.whl
  • Upload date:
  • Size: 220.0 kB
  • Tags: CPython 3.5m, macOS 10.6+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.5.6

File hashes

Hashes for nfstream-1.1.0-cp35-cp35m-macosx_10_6_x86_64.whl
Algorithm Hash digest
SHA256 88aa7c1082f2625eb337a69ef506d1950b1463dd76414f3f9067a99bb5d5c355
MD5 1aa7886fe122e0b4159a93547df434a4
BLAKE2b-256 0fe2546dc8c20fb2dda0286e491178f7185b10420154eb9853b6c36c94f13ae4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page