python+tshark实现按数据流拆解数据包

tshark是wireshark下的一个工具,主要用于命令行环境进行抓包,分析。
安装wireshark 
yum install wireshark
yum install wireshark-gnome

tshark -r 包路径 -Tfields -e tcp.stream   获取这个包所有的tcp流id

tshark -2 -R "tcp.stream eq 1" -r 源包路径 -w 目标包路径  将tcp流id为1的所有包过滤输出到指定文件 

根据这两个命令,写了一个小demo,将一个大包,按照tcp流或者udp流拆分成对应的多个小包。

#!/usr/bin/python
# -*- coding:utf-8 -*-

import os
import sys


def test(src_file, dst_path, proto):
    cmd = "tshark -r %s -Tfields -e %s.stream" % (src_file, proto)
    data = os.popen(cmd).read().split()
    data = map(eval, data)
    max_streamid = max(data) + 1
    for i in range(max_streamid):
        dst_file = os.path.join(dst_path, '%s.pcap' % i)
        cmd = "tshark -2 -R '%s.stream eq %s' -r %s -w %s" % (proto, i, src_file, dst_file)
        os.system(cmd)


if __name__ == '__main__':
    count = len(sys.argv)
    if count != 4:
        print "参数错误,请输入python test.py  原始包文件全路径 目的输出路径 tcp或udp"
        sys.exit(1)
    src_file = sys.argv[1]
    dst_path = sys.argv[2]
    proto = sys.argv[3]
    test(src_file, dst_path, proto)

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值