最近在有python的scapy模块分析TCP报文,一直有一个关于转义字符的问题困惑着我,查找的很多资料后仍然百思不得其解,请大神指教。

请看代码:

from scapy.all import *

def findTCPdata(pkt):

raw = pkt.sprintf("%Raw.load%")

print raw

print 'length of TCP data: '+ str(len(raw))

def main():

pkts = rdpcap('XXX.pcap')

for pkt in pkts:

findTCPdata(pkt)

if __name__ == '__main__':

main()

结果为:

打印出的字符串中‘\x11’、’\x04’等等应该相当于一个字符,但是解释器把它们当成了4个字符。所以四条报文中的tcp数据长度不是17而成了为53,52,46,52。

查阅scapy源码发现sprintf(“%Raw.load%”)函数实现提取tcp数据段,并将其转化为字符串,但是转化后的结果类似于raw_string,字符串中的‘\x’失效了,被当做了2个字符。

请问该怎么转化,使得转义字符‘\x’生效,使得类似‘\x11’、’\x04’等等的字符被看做一个字符而不是4个?

经过查阅资料,我发现要用个函数实现rawstring转string,即可。

raw = raw.replace('\'','')

string = raw.decode('string_escape')

输出的结果就正确了

python scapy 函数_【python|scapy】sprintf输出时raw_string转string相关推荐

  1. map函数的用法python,详解Python map函数及Python map()函数的用法

    python map函数 map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list ...

  2. python scapy模块_关于scapy模块

    scapy是一个可以让用户发送.侦听和解析并伪装网络报文的Python程序.这些功能可以用于制作侦测.扫描和攻击网络的工具. 换言之,Scapy 是一个强大的操纵报文的交互程序.它可以伪造或者解析多种 ...

  3. python len函数_知识清单Python必备的69个函数,你掌握了吗?

    本文纲要 Python 作为一门高级编程语言,为我们提供了许多方便易用的内置函数,节省了不少开发应用的时间.目前,Python 3.7 共有 69 个内置函数,一些是我们耳熟能详的函数,另一些却不是很 ...

  4. python center函数_数据类型和数据结构(三):字符串(4) 字符串内置函数(1)

    Photo by Ray Hennessy on Unsplash 4 字符串内置函数 除了使用+.*.in对字符串操作之外,我们还可以使用Python提供的多种字符串内置函数来对字符串进行操作处理. ...

  5. python partition函数_如何使用正确的姿势进行高效Python函数式编程?

    演讲者:丁来强@Splunk  PyConChina2015 北京站 9月12日与9月19日,PyConChina 2015上海站与北京站顺利落下帷幕."人生苦短,Python 当歌&quo ...

  6. python编写函数_浅谈Python 函数式编程

    匿名函数lambda表达式 什么是匿名函数? 匿名函数,顾名思义就是没有名字的函数,在程序中不用使用 def 进行定义,可以直接使用 lambda 关键字编写简单的代码逻辑.lambda 本质上是一个 ...

  7. python pos函数_使用python+sklearn实现特征提取

    sklearn.feature_extraction模块可用于以机器学习算法支持的格式从原始数据集(如文本和图像)中提取特征.**注意:**特征提取与特征选择有很大不同:前者是将任意数据(例如文本或图 ...

  8. python fact函数_第5天:Python 函数

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,所以我经常说函数是程序员规模化使用的基础. 函数能提高应用的模块性,和代码的重复利用率.在程序设计中,常将一些常用的功能模块编写成函数 ...

  9. python计算执行时间的函数_[python] 统计函数运行时间

    第一种: import time def time_me(fn): #fn 是要修饰/修改 的函数 def _wrapper(*args, **kwargs): #这个 _wrapper(*args, ...

最新文章

  1. Objective-C 什么是类
  2. poj1860(Bellman-Ford算法)
  3. Analysis Services基础知识——深入SQL Server 2008
  4. TA 们放肆摇晃的青春尾巴
  5. 【Linux 内核 内存管理】优化内存屏障 ③ ( 编译器屏障 | 禁止 / 开启内核抢占 与 方法保护临界区 | preempt_disable 禁止内核抢占源码 | 开启内核抢占源码 )
  6. MySQL简单查询性能分析
  7. linux mysql 安装innodb_在ubuntu Mysql 5.7 安装InnoDB Memcached 插件
  8. 联想开机启动项按哪个_联想电脑开机按f12后,怎么设置默认启动项
  9. android开机动画多长时间_Android开机动画原理分析
  10. 生命是一连串长期而持续的累积
  11. plc 滑台流程图_动力滑台液压系统及PLC控制设计
  12. HP 6L WIN7 WIN8 驱动
  13. python乌龟吃鱼_关于乌龟吃鱼游戏的问题
  14. 软约束、硬约束、Minimum Snap的轨迹优化方法
  15. 几乎所有食物的英文翻译
  16. 用什么工具可以免费下载720云VR全景图
  17. My 2007 Fash game: Elite Shooter
  18. 计算机专业一句话介绍自己,来聊聊,你会如何用一句话介绍自己的专业?
  19. β阶段第一周版本控制报告
  20. 什么是敏捷开发,敏捷开发落地指南之迭代排期

热门文章

  1. An Error Correction and DeNovo Assembly Approach for Nanopore Reads Using Short Reads
  2. 边缘计算Edage Computing
  3. mysql的安装胚子_Mysql安装
  4. mysql为什么直接8.0_为什么要迁移到MySQL8.0?
  5. webscraper多页爬取_数据收集:web scraper 多页(无规律url)抓取
  6. 图像分割--PixelNet: Representation of the pixels, by the pixels, and for the pixels
  7. C++ 协程介绍[译]
  8. php 脚本 fpm缓存,PHP生命周期及fpm(FastCGI进程管理器)的运作方式
  9. 2.c语言编译预处理,c语言第03章-编译预处理2.ppt
  10. python strip()函数