Chinaunix首页 | 论坛 | 博客
  • 博客访问: 45955
  • 博文数量: 13
  • 博客积分: 570
  • 博客等级: 中士
  • 技术积分: 145
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-21 09:23
文章分类

全部博文(13)

文章存档

2010年(7)

2009年(4)

2008年(2)

我的朋友

分类: Python/Ruby

2010-04-15 21:30:26


以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) |
0

上一篇:enumerate的用法

下一篇:和客户的交流

给主人留下些什么吧!~~