zoukankan      html  css  js  c++  java
  • 使用PYTHON解析Wireshark的PCAP文件

    PYTHON首先要安装scapy模块

    PY3的安装scapy-python3,使用PIP安装就好了,注意,PY3无法使用pyinstaller打包文件,PY2正常

    PY2的安装scapy,比较麻烦

    from scapy.all import *
    pcaps = rdpcap("file.pcap")
    


    pcaps便是解析后的类似结构体的东西了

    <pre name="code" class="python">packet=pcaps[0] #第1个数据包结构
    packet.time#数据包时间戳
    packet[Raw].load#PY3读取节点数据方法,packet[IP].src;packet[IP].dst
    packet['Raw'].load#PY2读取节点数据方法,PY3也应该可以
    lambda="lambda pcap:IP in pcap and UDP in pcap and pcap[IP].src=='192.168.1.1' and pcap[UDP].sport==80"
    results=pcaps.filter(eval(lambda))#lambda是一种表达式,这里使用字符串,也可以不用eval,直接写表达式,然后返回经过筛选的数据包

    python解析数据包十分占用内存,建议先用tshark命令行预处理筛选一遍数据包再进行PYTHON处理

    cmd_filter="%s && ip.src==%s && ip.dst==%s && %s.srcport==%s && %s.port==%s"% 
                    (Node['proto'].lower(),Node['src'],Node['dst'],Node['proto'].lower(),Node['sport'],Node['proto'].lower(),Node['dport'])
          
    os.system('start /WAIT "" "%s	shark" -r "%s" -R "%s" -w "%s"'%(Wireshark_path,pcap_filename,cmd_filter,Temp_pcap_File))


    然后在处理Temp_pcap_File文件就好了

  • 相关阅读:
    C# List<T>中Select List Distinct()去重复
    Spring.Net 简单入门学习
    [ASP.NET MVC]:
    打车题
    Vue------发布订阅模式实现
    Vue----数据响应原理
    小程序自定义导航栏_navigationStyle
    CleanWebpackPlugin最新版本使用问题
    js-事件函数调用简化
    用XHR简单封装一个axios
  • 原文地址:https://www.cnblogs.com/VseYoung/p/pcap_python.html
Copyright © 2011-2022 走看看