当前位置: 首页 > news >正文

python tcp 实时抓包

问题:之前我们系统上线后,因为是旧的系统,没有加统计的功能,比如用户喜欢那个页面,是哪些用户再访问,接口的负载能力等等。

解决办法:1,现有代码更改,添加功能。现有代码侵入太多,工作量比较大

2,想到tcpdump 抓包,然后分析文件。文件特别大,而且不能做到实时处理。

3,采用python 脚本来处理,直接抓包80端口,加上一些处理,入库之内。

 

环境搭建:

1,使用到的第三方包:dpkt-1.8.8.tar.gz,

impacket-master.zip,

pcapy-master.zip

pylibpcap-0.6.4.tar.gz

PyMySQL3-0.5.tar.gz

pypcap-1.1.6.tar.gz

pypcap-master.zip

下载地址:

https://pan.baidu.com/s/1nvXeuLz

 

2,代码解析:

 

pcapy.findalldevs()

    max_bytes = 20480
    promiscuous = False
    read_timeout = 10000 # in milliseconds
    pc = pcapy.open_live("eth1", max_bytes,
        promiscuous, read_timeout)

pc.setfilter('tcp port 80')

熟悉tcpdump 的都知道, eth1  是外网,然后 tcp port 80 是表示转80 端口的包。

 

核心代码:

recv_pkts 方法。

解包,得到请求ip地址

 src = socket.inet_ntoa(ip.src)

 ds = socket.inet_ntoa(ip.dst)

 转换数据为 http 请求数据,这样http请求的数据都在里边,比如cookiesession

Url, 参数,表单等等。

 request = dpkt.http.Request(http_data)


接下来, 就是统计数据了,自己实现即可。

 

项目地址:

https://github.com/gitsteven/python-tcpdumpdata

 

将来的版本:

1, 支持多包合并。

2, 支持https 


相关文章:

  • 个人支付平台
  • Android 程序分析环境搭建-开发环境搭建
  • 分析Android APK-反编译修改打包
  • Android 程序分析环境搭建-静态分析环境搭建
  • 某盟逆向初步
  • Frida 基本安装配置
  • Flutter App 逆向思路(二)
  • 某盼-聊天app模拟器监测
  • 9.2 安卓逆向之—Frida持久化方案
  • Frida IOS 堆栈输出与IDA 对应
  • 点击app图标和从任务列表打开activity不一样问题
  • AndroidStudio的alt+enter 没有效果 没有解决方案提示
  • 解决java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader couldn't find libDatabaseOp.so
  • 关于Android Studio 错误: 非法字符: '\ufeff' 解决方案|错误: 需要class, interface或enum
  • 集成友盟推送android
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • ECMAScript6(0):ES6简明参考手册
  • js中forEach回调同异步问题
  • Just for fun——迅速写完快速排序
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • php面试题 汇集2
  • Python - 闭包Closure
  • SpingCloudBus整合RabbitMQ
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 大主子表关联的性能优化方法
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 回顾 Swift 多平台移植进度 #2
  • 听说你叫Java(二)–Servlet请求
  • 微服务入门【系列视频课程】
  • 微信小程序设置上一页数据
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • #{}和${}的区别?
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (阿里云万网)-域名注册购买实名流程
  • (区间dp) (经典例题) 石子合并
  • (四)Linux Shell编程——输入输出重定向
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .Net CF下精确的计时器
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET 中让 Task 支持带超时的异步等待
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .net连接oracle数据库
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • @angular/cli项目构建--http(2)
  • @开发者,一文搞懂什么是 C# 计时器!
  • [14]内置对象
  • [16/N]论得趣
  • [Bada开发]初步入口函数介绍