python解析wirshark抓包数据
因为工作需要,需要分析wirshark的抓包数据。数据有的是在比特位中。不方便查找。而lua语言又不愿意去学,所以用python解析后,输出日志。帮助分析.
1.tcp分析
from dpkt.tcp import TCP
from scapy.all import *
from datetime import datetime, timedelta
import pytz
import datetime
from datetime import datetimedef main(file_path,tcp_ip,tcp_port):pkts = rdpcap(file_path)for pkt in pkts:if IP in pkt and TCP in pkt:if pkt[IP].dst == tcp_ip and pkt[TCP].dport == tcp_port:# if pkt[IP].dst == "225.0.0.10" and pkt[TCP].dport == 12306 and len(pkt) == 25:if len(pkt.load) == 18:print("*" * 50)print("Time: ", datetime.fromtimestamp(pkt.time), "Second byte: ", pkt[Raw].load[2])main('E:\\abs\\shak\\1.pcapng', "225.0.0.10", 12306)
2.udp分析
from dpkt.ip import IP
from dpkt.udp import UDP
from scapy.all import *
import datetime
from datetime import datetimedef main(file_path,udp_ip,udp_port):pkts = rdpcap(file_path)for pkt in pkts:if IP in pkt and UDP in pkt:if pkt[IP].dst == udp_ip and pkt[UDP].dport == udp_port:if len(pkt.load) == 18:print("*"*50)print("Time: ", datetime.fromtimestamp(pkt.time),"Second byte: ", pkt[Raw].load[2])if pkt[Raw].load[9] == 0x0a:print("*" * 50)# 打印完整的全部数据#print("Time: ", datetime.fromtimestamp(pkt.time),pkt.show())#只打印对应的数据包print("Time: ", datetime.fromtimestamp(pkt.time),pkt.load)
main('E:\\abs\\shak\\1.pcapng',"225.0.0.10",12306)
3.根据比特位取值,保存
from dpkt.ip import IP
from dpkt.udp import UDP
from scapy.all import *
import datetime
from datetime import datetimedef main(file_path,udp_ip,udp_port):pkts = rdpcap(file_path)with open("E:\\abs\\shak\\output.txt", "w") as f:for pkt in pkts:# 过滤ipif IP in pkt and UDP in pkt and pkt[IP].dst == udp_ip and pkt[UDP].dport == udp_port:# 过滤长度if len(pkt.load) == 18:#过滤功能码,同时可以计算某个字节的比特位if pkt[Raw].load[9] == 0x0a:bit_one = (pkt[Raw].load[10] >> 1) & 0x01bit_two = (pkt[Raw].load[10] >> 2) & 0x01bit_three = (pkt[Raw].load[10] >> 3) & 0x01bit_four = (pkt[Raw].load[10] >> 4) & 0x01bit_five = (pkt[Raw].load[10] >> 5) & 0x01bit_six = (pkt[Raw].load[10] >> 6) & 0x01bit_seven = (pkt[Raw].load[10] >> 7) & 0x01data = "Time:" + "\t" + str(datetime.fromtimestamp(pkt.time)) + "\t" + "data:" + str(bit_one)\+" "+str(bit_two)+" "+str(bit_three)+" "+str(bit_four)+" "+str(bit_five)+" "+str(bit_six)\+" "+str(bit_seven)+ "\n"f.write(data)#print("Time: ", datetime.fromtimestamp(pkt.time),pkt.show())print("Time: ", datetime.fromtimestamp(pkt.time),pkt.load)data1 = "Time:"+"\t" +str(datetime.fromtimestamp(pkt.time))+"\t"+"data:"+str(pkt.load)+"\n"f.write(data1)
相关文章:
python解析wirshark抓包数据
因为工作需要,需要分析wirshark的抓包数据。数据有的是在比特位中。不方便查找。而lua语言又不愿意去学,所以用python解析后,输出日志。帮助分析.1.tcp分析 from dpkt.tcp import TCP from scapy.all import * from datetime import datetim…...
一个用于操作Excel文件的.NET开源库
推荐一个高性能、跨平台的操作Excel文件的.NET开源库。 01 项目简介 ClosedXML是一个.NET第三方开源库,支持读取、操作和写入Excel 2007 (.xlsx, .xlsm)文件,是基于OpenXML封装的,让开发人员无需了解OpenXML API底层API…...
Web APIs——正则表达式使用
1、什么是正则表达式 正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象 通常用来查找、替换那些符合正则表达式的文本,许多语言都支持正则表达式 1.1 正则表达式使用场景 例如…...
文件包含学习笔记总结
文件包含概述 程序开发人员通常会把可重复使用函数或语句写到单个文件中,形成“封装”。在使用某个功能的时候,直接调用此文件,无需再次编写,提高代码重用性,减少代码量。这种调用文件的过程通常称为包含。 程…...
<C++> 优先级队列
目录 前言 一、priority_queue的使用 1. 成员函数 2. 例题 二、仿函数 三、模拟实现 1. 迭代器区间构造函数 && AdjustDown 2. pop 3. push && AdjustUp 4. top 5. size 6. empty 四、完整实现 总结 前言 优先级队列以及前面的双端队列基本上已经脱离了队列定…...
systemverilog:interface中的modport用法
使用modport可以将interface中的信号分组并指定方向,方向是从modport连接的模块看过来的。简单示例如下: interface cnt_if (input bit clk);logic rstn;logic load_en;logic [3:0] load;logic [7:0] count;modport TEST (input clk, count,output rst…...
VR建筑仿真场景编辑软件有助于激发创作者的灵感和创造力
随着VR虚拟现实技术的不断发展和普及,VR虚拟场景编辑器逐渐成为了VR场景开发重要工具。它对于丰富和完善VR虚拟现实内容的创建和呈现具有重要的意义,为我们的工作和教学带来了许多变化和可能性。 首先,VR虚拟场景编辑器对于提升用户体验具有重…...
8.查询数据
一、单表查询 MySQL从数据表中查询数据的基本语为SELECT语。SELECT语的基本格式是: SELECT {* | <字段列名>} [ FROM <表 1>, <表 2>… [WHERE <表达式> [GROUP BY <group by definition> [HAVING <expression> [{<operator>…...
VB.NET—Bug调试(参数话查询、附近语法错误)
目录 前言: BUG是什么! 事情的经过: 过程: 错误一: 错误二: 总结: 前言: BUG是什么! 在计算机科学中,BUG是指程序中的错误或缺陷,它通过是值代码中的错误、逻辑错误、语法错误、运行时错误等相关问题,这些问题…...
武汉凯迪正大—锂电池均衡维护仪
产品概况 KDZD885C 电池容量平衡测试系统,主要用于锂电池箱充放电测试及均衡维护,解决锂电池包单芯电压不均衡的痛点,用于快速解决锂电池电压不一致的难题,适用于各锂电池模组电压等级,集单芯放电,充电,均…...
解决服务器中的mysql连接不上Navicat的问题脚本
shell标本,快速解决服务器中的mysql连接不上Navicat的问题 在Linux服务器开发中,mysql的配置文件一般是只允许本地连接 所以想用Navicat进行连接,就需要修改配置和mysql中用户访问表的权限 为了方便,写成了shell脚本 #!/bin/bas…...
Git Flow的简单使用
目录 系列文章目录 一、新建feture下的分支 二、合并分支且删除当前分支 注意:这两个命令都得是在develop分支下进行 一、新建feture下的分支 xxx为自己命名的分支 git flow feature start xxx 二、合并分支且删除当前分支 需要先提交一下当前分支的代码&…...
LOWORD, HIWORD, LOBYTE, HIBYTE的解释
文章目录 实验结论 实验 int 类型大小正常为4Byte 以小端序来看 0x12345678在内存中的存储为 0x78 0x56 0x34 0x120x78在低地址,0x12在高地址 程序输出 #include <stdio.h> #include <string.h> #include<windows.h>int main() {int a 0x12345…...
Centos7.9用rancher来快速部署K8S
什么是 Rancher? Rancher 是一个 Kubernetes 管理工具,让你能在任何地方和任何提供商上部署和运行集群。 Rancher 可以创建来自 Kubernetes 托管服务提供商的集群,创建节点并安装 Kubernetes,或者导入在任何地方运行的现有 Kube…...
NSSCTF第12页(2)
[CSAWQual 2019]Unagi 是xxe注入,等找时间会专门去学一下 XML外部实体(XXE)注入 - 知乎 【精选】XML注入学习-CSDN博客 【精选】XML注入_xml注入例子-CSDN博客 题目描述说flag在/flag下 发现有上传点,上传一句话木马试试 文件…...
基于单片机的电源切换控制器设计(论文+源码)
1.系统设计 在基于单片机的电源切换控制器设计中,系统功能设计如下: (1)实现电源的电压检测; (2)如果电压太高,通过蜂鸣器进行报警提示,继电器进行切换,使…...
机器学习-特征选择:使用Lassco回归精确选择最佳特征
机器学习-特征选择:使用Lassco回归精确选择最佳特征 一、Lasso回归简介1.1 Lasso回归的基本原理1.2 Lasso回归与普通最小二乘法区别二、特征选择的方法2.1 过滤方法2.2 包装方法2.3 嵌入方法三、Lasso的特征选择流程3.1 数据预处理3.2 划分训练集和测试集3.3 搭建Lasso回归模型…...
uniapp开发ios上线(在win环境下使用三方)
苹果 1、win环境下无法使用苹果os编译器所以使用第三方上传工具,以下示例为 初雪云 (单次收费,一元一次) 初雪云(注册p12证书):https://www.chuxueyun.com/#/pages/AppleCertificate 苹果开发者…...
【深度学习 | 核心概念】那些深度学习路上必经的核心概念,确定不来看看? (六)
🤵♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…...
景联文科技:驾驭数据浪潮,赋能AI产业——全球领先的数据标注解决方案供应商
根据IDC相关数据统计,全球数据量正在经历爆炸式增长,预计将从2016年的16.1ZB猛增至2025年的163ZB,其中大部分是非结构化数据,被直接利用,必须通过数据标注转化为AI可识别的格式,才能最大限度地发挥其应用价…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...
