Nfstream本质上来说是一款Python包,它可以提供快速、灵活且有效的数据结构,支持针对在线或离线状态的网络数据进行分析,这种方式既简单又直观。在Nfstream的帮助下,广大研究人员可以直接在自己的Python代码中集成数据分析功能,并对真实场景下的实际网络数据进行分析。除此之外,Nfstream目前仍处于开发阶段,该项目将会为研究人员提供各种实验数据复现功能,并成为一款通用的网络数据处理与分析框架。

功能介绍

1、性能:Nfstream的运行速度非常快(集成pypy3后,速度将会快10倍),而且对CPU和内存的需求并不大;

2、七层可见度:Nfstream深度数据包检测引擎基于nDPI实现,它允许Nfstream执行可靠的加密应用识别与元数据提取(例如TLS, QUIC, TOR, HTTP, SSH, DNS);

3、灵活性:引入NFPlugin插件概念,便于实现功能扩展;

4、机器学习:支持以NFPlugin的形式添加训练模型;

工具依赖

广大研究人员可以运行下列命令来完成NFPlugin依赖组件的配置:

apt-get install libpcap-dev

工具下载

使用pip安装

如果你习惯使用pip的话,你可以直接使用pip3命令安装本项目的最新版本:

pip3 install nfstream

源码构建

广大研究人员也可以使用下列命令将项目源码克隆至本地:

git clone https://github.com/aouinizied/nfstream.git

工具使用

当你在处理一个非常大的pcap文件时,如果你只想将其聚合为网络流,那么你只需要实现下列几行代码,剩下的就可以交给Nfstream来完成了:

from nfstream import NFStreamermy_awesome_streamer = NFStreamer(source="facebook.pcap") # or network interface (source="eth0")for flow in my_awesome_streamer:print(flow)  # print it, append to pandas Dataframe or whatever you want :) !NFEntry(id=0,first_seen=1472393122365,last_seen=1472393123665,version=4,src_port=52066,dst_port=443,protocol=6,vlan_id=0,src_ip='192.168.43.18',dst_ip='66.220.156.68',total_packets=19,total_bytes=5745,duration=1300,src2dst_packets=9,src2dst_bytes=1345,dst2src_packets=10,dst2src_bytes=4400,expiration_id=0,master_protocol=91,app_protocol=119,application_name='TLS.Facebook',category_name='SocialNetwork',client_info='facebook.com',server_info='*.facebook.com',j3a_client='bfcc1a3891601edb4f137ab7ab25b840',j3a_server='2d1e***17ece335c24904f516ad5da12')

将pcap转换为Pandas DataFrame:

import pandas as pd  streamer_awesome = NFStreamer(source='devil.pcap')
data = []
for flow in streamer_awesome:data.append(flow.to_namedtuple())
my_df = pd.DataFrame(data=data)
my_df.head(5) # Enjoy!

如果你没找到特定的数据流功能,你可以通过几行代码来向Nfstream增加插件:

from nfstream import NFPluginclass my_awesome_plugin(NFPlugin):def on_update(self, obs, entry):if obs.length >= 666:entry.my_awesome_plugin += 1streamer_awesome = NFStreamer(source='devil.pcap', plugins=[my_awesome_plugin()])
for flow in streamer_awesome:print(flow.my_awesome_plugin) # see your dynamically created metric in generated flows

更多详细的使用方法,请参考Nfstream的官方文档:

https://readthedocs.org/projects/nfstream/downloads/pdf/latest/

项目地址:

https://github.com/aouinizied/nfstream

python nDPI 流量分析框架 Nfstream 简介相关推荐

  1. Py之PyODPS:PyODPS(MaxCompute平台上的大数据处理和分析框架)的简介、安装、使用方法之详细攻略

    Py之PyODPS:PyODPS(MaxCompute平台上的大数据处理和分析框架)的简介.安装.使用方法之详细攻略 目录 PyODPS的简介 1.PyODPS的特点 2.MaxCompute下SQL ...

  2. python hacklib_【入门】angr:基于python的二进制分析框架

    文章难易度:★★★ 文章阅读点/知识点:angr:基于python的二进制分析框架 文章作者:desword

  3. python实现——流量分析

    前言 需要使用Scapy模块来编写流量嗅探工具,用到Scapy中的sniff()函数,该函数中比较重要的参数如下: iface:指定在哪个网络接口上抓包 count:表示要捕获的数据包的数量.默认值是 ...

  4. python appium自动化测试框架unittest_Appium基于Python unittest自动化测试 自动化测试框架 -- PO并生成html测试报告...

    基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告 代码示例: #利用unittest并生成测试报告 class Appium_test(unitt ...

  5. c语言字符统计2sdut,山东理工大学SDUT - ACM OJ 题: Python代码 及分析

    Python基础语法学习完成,先刷基础题100道巩固 ,附 题目.代码.知识分析 题目:http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index ...

  6. python:web后台框架简单实现

    python:web后台框架 目录 简介:BS开发和http协议 WSGI概述 类flask框架简单实现 response使用及wsgify装饰器 路由 模板原理 jinjia2模板技术 模块化,ja ...

  7. 大数据离线---网站日志流量分析系统(1)---简介及框架

    本次介绍网站日志流量分析系统,首先是简介和架构.后面会对架构中需要的每个模块的进行逐个介绍.本篇主要分为两个部分 网站日志流量分析系统简介 整体技术流程和架构 1. 网站日志流量分析系统简介 1.1点 ...

  8. Android以太网框架情景分析之启动简介

            Android以太网框架情景分析之启动简介 Android网络框架分析系列文章目录: Android P适配以太网功能开发指南 Android以太网框架情景分析之启动简介 Androi ...

  9. DL框架之Keras:深度学习框架Keras框架的简介、安装(Python库)、相关概念、Keras模型使用、使用方法之详细攻略

    DL框架之Keras:深度学习框架Keras框架的简介.安装(Python库).相关概念.Keras模型使用.使用方法之详细攻略 目录 Keras的简介 1.Keras的特点 2.Keras四大特性 ...

最新文章

  1. grpc 传递上下文_grpc 源码笔记 02:ClientConn
  2. java使用动态代理来实现AOP(日志记录)的实例代码
  3. 公众号滑动图代码_实用技巧:公众号封面图如何提取?
  4. 【Flink】Flink 小知识点 Flink 同时 保存 offset 到backend 和 kafka 内置 topic
  5. Maven依赖junit @Test报错解决
  6. [Swift]LeetCode528. 按权重随机选择 | Random Pick with Weight
  7. 南师大计算机系,清华大学2010计算机系本科录取名单(南京仅1人考上)
  8. 中国城市名列表及code
  9. [转帖]变速齿轮的一种实现方法(内有中断门的创建与调用)
  10. 常见的直流稳压电源电容有哪些?及其详细介绍
  11. mac上投屏android_简单实用的手机投屏Mac电脑
  12. rebase操作使用方法
  13. pubwin会员合并
  14. 商城-下单-订单结算页
  15. java类注释 写作规范_Java标准注释及规范
  16. Java空指针异常处理
  17. 数据结构-----最长回文子串
  18. RabbitMQ学习笔记和AMQP协议浅析
  19. iOS自动化打包发布(fastlane)
  20. 3D Max 软件重置和病毒查杀

热门文章

  1. js里面把密码encode_Python进阶最详细的JS加密登录X博
  2. 计算机组成原理 — CPU 中央处理器
  3. Python基本语法_函数属性 参数类型 偏函数的应用
  4. 电容触摸屏GT911、GT928、GT9147的使用
  5. WPF 4 Ribbon 开发 之 应用程序菜单(Application Menu)
  6. linux基本命令之rsync
  7. linux服务器的日志管理
  8. [Node.js]Restful Api
  9. visual studio 的git插件推荐
  10. 开发Activex控件安全