在POX中操作数据包
2015-12-01 19:01
471 查看
在POX中操作数据包
标签(空格分隔): 博客 SDN想在SDN控制器中做点事情,必须要能够解析上来的packet,在POX中利用pox.lib.packet中的组件很方便,重点是熟悉各个协议的字段。POX文档 POX Wiki 相对比较完善,值得好好看看。
各个协议类继承了packet_base, 里面的find 方法很实用,在解析packet的时候, find(‘protocol’)就会解析得到对应协议的包。
解析到传输层后的payload类型是str,我们可以探测里面的内容,但是长度不一定是整个packet(可以修改)。
下面是我解析UDP包的过程,得到里面的内容之后,就可以对应设计自己的策略。
[code]def spy_udp_packet(self, packet): ip = packet.find('ipv4') if ip is None: return log.debug('protocol={},srcip={},dstip={}'.format(ip.protocol, ip.srcip, ip.dstip)) # we only care about UDP packet udp_packet = ip.find('udp') if udp_packet is None: return log.debug('srcport={},dstport={}'.format(udp_packet.srcport, udp_packet.dstport)) udp_payload = udp_packet.payload # The payload include a '\n' , and its type is <type 'str'> log.debug('udp playload(len={}): {},type={}'.format(len(udp_payload), str(udp_payload), type(udp_payload)))
相关文章推荐
- HTML5基本标签、样式
- bootstrap快速入门笔记(九)-响应式工具
- halcon中你不知道的标定板细节
- java读取文件夹下所有文件并替换文件每一行中指定的字符串
- 经典SQL语句大全、50个常用的sql语句
- C语言之指针笔记
- doxygen 引用.md红色字体设置无效
- Linux IO模式及IO多路复用详解
- 1028. List Sorting (25)
- Error Code: 1175. You are using safe update
- hdu 1273 森林漫步
- Broadcast 广播机制总结
- ubuntu 14.04 更新 flash
- 多态 第二课
- ISAPI_Rewrite3.1相关知识
- 1018. Public Bike Management (30)——PAT (Advanced Level) Practise
- 谈谈asp.net
- WIFI之服务器系统设计组成
- vmprotect
- 蓝桥杯OJ刷题日记——07-基础练习 特殊的数字