Skip to main content

CICFlowMeter Python Implementation

Project description

Python CICFlowMeter

This project is not maintained actively by me. If you found something wrong (bugs, incorrect results) feel free to create issues or pull requests.


⚡️ Version 0.4.0: Major Refactor (June 2025)

  • The tool now uses a custom FlowSession and the prn callback of Scapy's AsyncSniffer for all flow processing, instead of relying on Scapy's DefaultSession/session system.
  • All flow logic, feature extraction, and output are now fully managed by the project code, not by Scapy internals.
  • The process method always returns None, preventing unwanted packet printing by Scapy.
  • Logging is robust: only shows debug output if -v is set.
  • All flows are always flushed at the end, even for small pcaps.
  • This project is a CICFlowMeter-like tool (see UNB CICFlowMeter), not Cisco NetFlow. It extracts custom flow features as in the original Java CICFlowMeter.
  • The refactor does not change the set of features/fields extracted, only how packets are routed to your logic.

Installation

git clone https://github.com/hieulw/cicflowmeter
cd cicflowmeter
uv sync
source .venv/bin/activate

Usage

usage: cicflowmeter [-h] (-i INPUT_INTERFACE | -f INPUT_FILE | -d INPUT_DIRECTORY) (-c | -u) [--fields FIELDS] [--merge] [-v] output

positional arguments:
  output                output file name (in csv mode), url (in url mode), or output directory (in directory mode)

options:
  -h, --help            show this help message and exit
  -i INPUT_INTERFACE, --interface INPUT_INTERFACE
                        capture online data from INPUT_INTERFACE
  -f INPUT_FILE, --file INPUT_FILE
                        capture offline data from INPUT_FILE
  -d INPUT_DIRECTORY, --directory INPUT_DIRECTORY
                        capture offline data from all pcap files in INPUT_DIRECTORY
  -c, --csv             output flows as csv
  -u, --url             output flows as request to url
  --fields FIELDS       comma separated fields to include in output (default: all)
  --merge               merge all pcap files into a single CSV (only works with -d/--directory mode)
  -v, --verbose         more verbose

Convert pcap file to flow csv:

cicflowmeter -f example.pcap -c flows.csv

Convert all PCAP files in a directory (separate CSVs)

cicflowmeter -d ./pcap_folder/ -c ./csv_output/

Convert all PCAP files in a directory (merged into single CSV)

cicflowmeter -d ./pcap_folder/ -c ./csv_output/ --merge

Sniff packets real-time from interface to flow request: (need root permission)

cicflowmeter -i eth0 -u http://localhost:8080/predict

References:

  1. https://www.unb.ca/cic/research/applications.html#CICFlowMeter
  2. https://github.com/ahlashkari/CICFlowMeter

Project details


Download files

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

Source Distribution

cicflowmeter-0.5.0.tar.gz (31.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cicflowmeter-0.5.0-py3-none-any.whl (19.9 kB view details)

Uploaded Python 3

File details

Details for the file cicflowmeter-0.5.0.tar.gz.

File metadata

  • Download URL: cicflowmeter-0.5.0.tar.gz
  • Upload date:
  • Size: 31.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.5

File hashes

Hashes for cicflowmeter-0.5.0.tar.gz
Algorithm Hash digest
SHA256 501d8b78ca6b95a1d1300bf5f9424bbfa1f359d188e0af960920586b4a0d4f0e
MD5 c2406bfedeb271046a2a40afda806841
BLAKE2b-256 da2061f2285a6bae616a2412c2fc1eb5b95296e10ceaa69fcd78011dfa82f612

See more details on using hashes here.

File details

Details for the file cicflowmeter-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for cicflowmeter-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5aabcbb05651261b2c34171aa041015f55673cddda01dc8a6f7508976795c361
MD5 0e6bc60f45ab4254ed9b0b537d8e94df
BLAKE2b-256 38445c3b39d14836398334513647c975ed797b6a393cfd719895210c61070fc3

See more details on using hashes here.

Supported by

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