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

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)
http://www.lryc.cn/news/231194.html

相关文章:

  • 一个用于操作Excel文件的.NET开源库
  • Web APIs——正则表达式使用
  • 文件包含学习笔记总结
  • <C++> 优先级队列
  • systemverilog:interface中的modport用法
  • VR建筑仿真场景编辑软件有助于激发创作者的灵感和创造力
  • 8.查询数据
  • VB.NET—Bug调试(参数话查询、附近语法错误)
  • 武汉凯迪正大—锂电池均衡维护仪
  • 解决服务器中的mysql连接不上Navicat的问题脚本
  • Git Flow的简单使用
  • LOWORD, HIWORD, LOBYTE, HIBYTE的解释
  • Centos7.9用rancher来快速部署K8S
  • NSSCTF第12页(2)
  • 基于单片机的电源切换控制器设计(论文+源码)
  • 机器学习-特征选择:使用Lassco回归精确选择最佳特征
  • uniapp开发ios上线(在win环境下使用三方)
  • 【深度学习 | 核心概念】那些深度学习路上必经的核心概念,确定不来看看? (六)
  • 景联文科技:驾驭数据浪潮,赋能AI产业——全球领先的数据标注解决方案供应商
  • OpenCV+特征检测
  • Excel-lookup函数核对两个表格的数据匹配
  • Vue 简单的语法
  • 华为ensp:vrrp双机热备负载均衡
  • postswigger 靶场(CSRF)攻略-- 1.没有防御措施的 CSRF 漏洞
  • Langchain知识点(下)
  • 百度飞浆环境安装
  • 云效流水线docker部署 :node.js镜像部署VUE项目
  • 软件工程理论与实践 (吕云翔) 第五章 面向对象方法与UML课后习题及其答案解析
  • 三层架构java _web
  • 微信小程序项目——基本目录构成