如何检查 scapy 函数的选项

How to check options for scapy functions

目前正在做一些 python 编程,我遇到了一个我找不到答案的问题。谷歌搜索可能不好...无论如何,我有这样的东西

#  Construct the DNS packet
        DNSpkt = DNS(
            id=pkt[DNS].id, # use same id from captured packet
            qd=pkt[DNS].qd, # copy the question section from packet
            aa=1,       # Set flag for authoritative message
            qr=1,       # Set flag for reply message
            qdcount=1,      # one question  
            ancount=1,  # one answer
            an=Anssec)  # my bogus answer is set in reply

我想知道如何查看 DNS 等功能所采用的选项。还有其他的,

IPpkt =  IP(dst=pkt[IP].src, src=pkt[IP].dst)
UDPpkt   =  UDP(dport=pkt[UDP].sport, sport=53)

例如IP有dst和src选项。我想知道如果我看到的只是 IP(),我怎么知道。我也想知道选项有哪些。例如,dst 采用 ipv4 地址。请根据我使用的任何术语纠正我,因为我相信这就是我找不到问题答案的原因。谢谢你的时间。

也许这就是你需要的-

In [33]: DNSpkt.fields
Out[33]: {'aa': 1, 'an': 'Anssec', 'ancount': 1, 'qdcount': 1, 'qr': 1}

(缺少 pkt,因为我没有用它来实例化 DNS() 对象)

您有多种选择:

>>> ls(IP)
version    : BitField  (4 bits)                  = (4)
ihl        : BitField  (4 bits)                  = (None)
tos        : XByteField                          = (0)
len        : ShortField                          = (None)
id         : ShortField                          = (1)
flags      : FlagsField  (3 bits)                = (<Flag 0 ()>)
frag       : BitField  (13 bits)                 = (0)
ttl        : ByteField                           = (64)
proto      : ByteEnumField                       = (0)
chksum     : XShortField                         = (None)
src        : SourceIPField                       = (None)
dst        : DestIPField                         = (None)
options    : PacketListField                     = ([])
  • 此外,您还可以使用 rfc(IP),但请注意,这已显示在在线文档中,并且纯粹是提供信息,因为所有名称均大写。
>>> rfc(IP)
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|VERSION|  IHL  |      TOS      |              LEN              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               ID              |FLAGS|           FRAG          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      TTL      |     PROTO     |             CHKSUM            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              SRC                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              DST                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            OPTIONS            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                             Fig. IP