私はプロトコルを作成しようとしますが、私はいくつかの問題を理解しています。私は すべての層のクラスを作成しました。次に、私のためにパケットを ビルドするいくつかの方法を作成しました。私は、パケットを作成するときscapy independent layers、encapsulationなし
:それは 理にかなって パケットは、例えばIP()/ICMP()
のためのような(カプセル化されていることを私の理解に、この手段、
<Foo | <Bar |>>
:
a=Foo()/Bar() (or a=test())
私のような何かを得ます)。今、私の問題は、もっと好きなものを持っていたいということです。
<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")
は今、私はよく分からない:ここでは私が使用したコード(簡易版)に従います。どのように 私はより良い方法でそれを行うだろうか?私のプロトコルでは、レイヤーは独立していて でカプセル化されていません。