tshark 实践记录

项目需要 临时研究了一下,因为主业不是这个,所以在这里记录一下,以便于需要的人参考

1.需要最终数据中包含端口号-过滤条件

udp || tcp

2.把pcap导出成txt

tshark -V -r 输入文件(如 .pcap) > 输出文件(.txt

3.从pcap筛选出 ipv4/ipv6-udp/tcp包

该实例列出了 帧数、帧时间、帧长度、协议类型、源ip、目的ip、UDP源端口、TCP源端口

tshark -n -t a -2 -R "tcp || udp" -T fields -e "frame.number" -e "frame.time" -e "frame.len" -e "eth.type" -e "ip.src" -e "ip.dst" -e "ipv6.src" -e "ipv6.dst" -e "udp.srcport" -e "udp.dstport" -e "tcp.srcport" -e "tcp.dstport"

4.抓数秒的数据包

tshark -i 网卡号(用-D查看) -w 要输出的文件名(比如.pcap 在结束前不要动这个文件) -a duration:秒数

5.连贯操作的py脚本 (抓包+筛选)


#-*-coding:utf8-*-

import os
import time

def main():
    numD = sys.argv[1] # 网卡号
    pcapfile = sys.argv[2] # pcap文件全路径
    outfile = sys.argv[3] # 输出文件全路径
    cmd = "tshark -i " + str(numD) + " -w " + str(pcapfile) + "   -a duration:300"
    p=os.system(cmd)
    cmd = "tshark -n -t a -2 -R \"udp && eth.type == 0x800\" -T fields -e \"frame.number\" -e \"frame.time\" -e \"frame.len\" -e \"eth.type\" -e \"ipv6.src\" -e \"ipv6.dst\" -e \"udp.srcport\" -e \"udp.dstport\" -V -r " + pcapfile + " > " + outfile
    p=os.system(cmd)

if __name__ == '__main__':
    main()

你可能感兴趣的:(python)