赞
踩
dpkt定义了Packet类,这是所有其他dpkt定义的网络报文类型的基础类。Packet类继承自Object。
1、ip,icmp等等子类都继承自dpkt class,每个子类都会定义一个__hdr__结构,该结构代表报文的头结构,是一个元组,其中包含若干个元组。每个子元组的结构是:
(name, structfmt, default) ----(名称,结构格式,默认值)
类中有一个pack_hdr()函数负责对该数据进行打包。
举个例子:
>>> class Foo(Packet):
... __hdr__ = (('foo', 'I', 1), ('bar', 'H', 2), ('baz', '4s', 'quux'))
...
>>> foo = Foo(bar=3)
>>> foo
Foo(bar=3)
>>> str(foo)
'\x00\x00\x00\x01\x00\x03quux'
>>> foo.bar
3
>>> foo.baz
'quux'
>>> foo.foo = 7
>>> foo.baz = 'whee'
>>> foo
Foo(baz='whee', foo=7, bar=3)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。