Scapy BitField 和 type() 的问题
我正在为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)
输出结果:
<type 'int'>
<type 'int'>
<type 'int'>
<type 'NoneType'>
我的问题是:能否检测到BitField("foo",0x0,2)
的第二个参数是0x0
还是其他值?如果可以,我该怎么做?如果不行,为什么呢?
2 个回答
0
试试在 BitField 实例中使用 .default
属性。
1
第二个参数叫做 default
,它被存储为一个属性,属性的名字也是 default。
b = BitField("foo",0x0,2)
b.default # 0