0
我嘗試創建一個協議,並且我有一些理解問題。我爲 創建了每個圖層的類。然後,我創建了一些方法,爲我構建 數據包,方法是將這些層疊在一起。scapy獨立層,沒有封裝
當我創建一個包:
a=Foo()/Bar() (or a=test())
我得到的是這樣的:
<Foo | <Bar |>>
,這意味着,我的理解是, 數據包被封裝(例如像IP()/ICMP()
下才有 意義)。現在,我的問題是我想要更類似於:
<Foo |> <Bar |>
我做錯了什麼?這裏遵循我使用的代碼(簡體版):
#!/usr/bin/env python
import logging
logging.getLogger("scapy").setLevel(1)
from scapy.all import *
class Foo(Packet):
name = "Foo packet"
fields_desc = [
ByteField("foo1", 0x23)
]
class Bar(Packet):
name = "Bar packet"
fields_desc = [
ByteField("bar1", 0x42)
]
def test():
a=Foo()
b=Bar()
return a/b
if __name__ == "__main__":
interact(mydict=globals(), mybanner="test-env")
現在,我不知道,如果「/」是這種情況下,正確的操作。 如何以更好的方式做到這一點?在我的協議中,這些層是獨立的 而不是封裝的。