以IP头中的protocl字段为例,在python中一般会这么处理这个字段,把这些协议放到一个dict中
ICMP = 1
IGMP = 2
TCP = 6
UDP = 17
protocol= {'ICMP' : ICMP,
'IGMP' : IGMP,
'TCP' : TCP,
'UDP' : UDP}
|
当需要向这个字段写值的时候,就可以很方便的用协议的名字去标示,比如写TCP,就可以protocol['TCP'],这样就可以把6写进去。
当我们接受到一个报文的时候,在读到protocol这个字段的时候,收到的数据就是1,2,6,17之类的,然后它对应各种协议,这里需要再建立一个字典,其实就是把protocl这个dict的key和value交换一下就可以了。
protocol_by_text = dict(((y, x) for x, y in protocol.iteritems()))
print protocol_by_text
{17: 'UDP', 2: 'IGMP', 6: 'TCP', 1: 'ICMP'}
|
这样,当读到protocol这个字段的值的时候,就可以很方便的和协议联系起来了。
阅读(913) | 评论(0) | 转发(0) |