python - Scapy 无法过滤某些数据包

标签 python filter port scapy

我用 scapy 设置了一个简单的嗅探功能,它将数据包转发到握手功能(我在端口 102 上设置了一个网络服务器。但是出现了一些奇怪的错误,然后我决定打印 pkt.show(),我发现有些包确实以某种方式通过了过滤器。

我的嗅探功能:

a=sniff(filter="port 102", count=10, prn=handshake)

该数据包成功通过:

###[ Ethernet ]###
  dst       = 84:8f:69:f5:fe:ac
  src       = b8:27:eb:92:a3:3b
  type      = 0x800
###[ IP ]###
     version   = 4L
     ihl       = 5L
     tos       = 0x0
     len       = 44
     id        = 1
     flags     =
     frag      = 0L
     ttl       = 64
     proto     = tcp
     chksum    = 0xe6c6
     src       = 192.168.137.178
     dst       = 192.168.137.1
     \options   \
###[ TCP ]###
        sport     = iso_tsap
        dport     = 2426
        seq       = 605952828
        ack       = 605952829
        dataofs   = 6L
        reserved  = 0L
        flags     = SA
        window    = 8192
        chksum    = 0x5b7c
        urgptr    = 0
        options   = [('MSS', 1460)]

正如您所看到的,目标端口是 2426,这绝对不是端口 102

我是不是做了什么蠢事?

最佳答案

所附数据包中的源端口为 iso_tsap which is 102 。如果您想按目标端口进行过滤,请尝试过滤器“dst port 102”。如果您需要更复杂的东西,hereBPF的语法,由scapy使用。

关于python - Scapy 无法过滤某些数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30141853/

相关文章:

Python(Pandas)在多索引数据框的每个级别上添加小计

python - Pandas - 填充 NaN 的变体 - 什么是优雅和 pythonic 的方式来做到这一点?

python - 如何在 Perl 和 Python 中模拟命令提示符

silverlight - 像 Silverlight 数据网格中的 FILTER 功能一样的 Excel?

filter - 如何为事务管理编写自定义过滤器

c - 从服务器运行程序并将其连接到同一客户端

Python,如何在集成 KDE 时找到特定值?

r - 在 R 中,如何过滤数据框以仅包含具有 >=2 个非 NA 值的行?

c# - 为服务器应用程序使用 3 个端口是否明智?

java - 仅当指定端口时,JNLP 应用程序才会被安全设置阻止