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
FlowSessionand theprncallback of Scapy'sAsyncSnifferfor all flow processing, instead of relying on Scapy'sDefaultSession/session system. - All flow logic, feature extraction, and output are now fully managed by the project code, not by Scapy internals.
- The
processmethod always returnsNone, preventing unwanted packet printing by Scapy. - Logging is robust: only shows debug output if
-vis 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:
Metadata
Release files for cicflowmeter 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| cicflowmeter-0.5.0.tar.gz | 31.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cicflowmeter-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 51.3 kB
Release files / cicflowmeter-0.5.0.tar.gz
| Download URL | cicflowmeter-0.5.0.tar.gz |
|---|---|
| Size | 31.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
501d8b78ca6b95a1d1300bf5f9424bbfa1f359d188e0af960920586b4a0d4f0e
|
|
BLAKE2b-256 checksum How to use checksums |
da2061f2285a6bae616a2412c2fc1eb5b95296e10ceaa69fcd78011dfa82f612
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.5
|
Release files / cicflowmeter-0.5.0-py3-none-any.whl
| Download URL | cicflowmeter-0.5.0-py3-none-any.whl |
|---|---|
| Size | 19.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5aabcbb05651261b2c34171aa041015f55673cddda01dc8a6f7508976795c361
|
|
BLAKE2b-256 checksum How to use checksums |
38445c3b39d14836398334513647c975ed797b6a393cfd719895210c61070fc3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.5
|
Security for cicflowmeter 0.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.