首页 > 解决方案 > 读取 pcap 文件并获取具有特定 IP 地址的 dport 号

问题描述

我是 Python 新手。我正在使用 scapy 读取 pcap 文件,我想通过指定特定的 ip 地址来获取 dport 号,我有类似下面的内容

from scapy.all import *
pkts = rdpcap('example.pcap')


for pkt in pkts:
    if IP in pkt:
        ip_src=pkt[IP].src
        ip_dst=pkt[IP].dst
    if TCP in pkt:
        tcp_sport=pkt[TCP].sport
        tcp_dport=pkt[TCP].dport
        print " IP src " + str(ip_src) + " TCP sport " + str(tcp_sport) 
        print " IP dst " + str(ip_dst) + " TCP dport " + str(tcp_dport)
        if ( ( pkt[IP].src == "10.116.206.114") or ( pkt[IP].dst == "10.236.138.184") ):
            print("!")

.pcap 文件

在此处输入图像描述

所需输出

在此处输入图像描述

在上面的代码中,我得到了两个结果,如下所示

IP src 10.116.206.114 TCP dport 443
IP dst 10.236.138.184 TCP dport 443
----
IP src 10.236.138.184 TCP dport 12516
IP dst 10.116.206.114 TCP dport 12516
.
.

依此类推,但我只想要特定的 src 和 dst ip,如下所示,我不想要两个 dport 号码。

IP src 10.116.206.114 TCP dport 443
IP dst 10.236.138.184 TCP dport 443
----
IP src 10.116.206.114 TCP dport 22
IP dst 10.236.138.184 TCP dport 22

请提出一种方法并解释如何从特定的 IP 地址获取 dport 号。谢谢!

标签: python-3.xwiresharkscapypacketpcap

解决方案


推荐阅读