Scapy BitField和type()问题

时间:2011-07-14 11:24:40

标签: python scapy

我正在为scapy写一个插件,遇到了问题。我不得不稍微修改原始的scapy代码(每个类都继承自对象)修改后的代码可以在这里找到:http://pastebin.com/pjcL1KJv

我写的代码如下:

class Foo():
   array=[ BitField("foo",0x0,2),
           BitField("foo1",0x0,2),
           BitField("bar",0x0,2),
           BitField("blub",None,2)
 ]
def returnArr(a):  
      for i in a.array:
           print type(i.default)


if __name__ == "__main__":
    a=Foo()
    a.blub=0x23
    returnArr(a)

输出:

< 输入'int'>

< 输入'int'>

< 输入'int'>

< 输入'NoneType'>

我的问题: 是否可以检测BitField("foo",0x0,2)的第二个参数是0x0还是其他?如果有可能,我该怎么做?如果没有,为什么?

2 个答案:

答案 0 :(得分:1)

第二个参数称为default,它存储为也称为默认的属性。

b = BitField("foo",0x0,2)
b.default   # 0

答案 1 :(得分:0)

尝试使用BitField实例的.default属性。