- - | 09/Dec/2017:08:00:19 +0000 | POST /some/api HTTP/1.1 | 200 | 461 |
- --SgX5AyE7dwyg0smH-Tqpt-ggGQwTU9
- \x0D\x0AContent-Disposition: form-data; name=\x22name\x22\x0D\x0AContent-Type: text/plain; charset=UTF-8\x0D\x0A\x0D\x0value\x0D\x0A
- --SgX5AyE7dwyg0smH-Tqpt-ggGQwTU9
- \x0D\x0AContent-Disposition: form-data; name=\x22file\x22; filename=\abc.jpg\x22
- \x0D\x0AContent-Type: application/octet-stream
- \x0D\x0AContent-Transfer-Encoding: binary\x0D\x0A\x0D\x0A\xFF\xD8\xFF\xE0\x00\x10JFIF\x00 ... \xD2_\xA0\x1A\x7F\xFF\xD9\x0D\x0A
- --SgX5AyE7dwyg0smH-Tqpt-ggGQwTU9--
- \x0D\x0A | 42097 | - | - | - | 1.1.1.1 | d1fkkbcd02eb | 127.0.0.1:8888 | 0.034 | 0.123
如许的匹配处理并不严谨,假设原始数据中本来就含有\\x0D\\x0A--的话,就会损掉原始数据,但今朝为止还没碰到这种情况有效。更麻烦的做法是先匹配出表单瓜分字符串,然后以此为界朋搀扶数据后,再删除两边多余的字符和回车换行。
成功提掏出原始数据后,对数据进行解码,并写入.jpg文件。如不雅没有解码这一步,所有的数据都邑被当做字符串写入文件,而不会被当成转义字符。简单做个测试:
把"\xFF\xD8\xFF\xE0\x00\x10JFIF\x00\x01"保存到文件test.log。
- >>> f = open('test.log', 'rb')
- >>> data = f.read()
- >>> data
- '\\xFF\\xD8\\xFF\\xE0\\x00\\x10JFIF\\x00\\x01\n'
- >>> print data
- \xFF\xD8\xFF\xE0\x00\x10JFIF\x00\x01
- >>> import codecs as c
- >>> c.decode(data, 'string_escape')
- '\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\n'
- >>> print c.decode(data, 'string_escape')
- ����JFIF
- >>>
攫取的原始数据是两根反斜杠,print时因为反斜杠被转义成字符,所以变成一根。解码后的数据本身只有一根斜杠,print时打印出转义字符本身,也就是乱码。
推荐阅读
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?AMD、百度12月14日结合宣布,基于AMD EPYC办事器平台的百度人工智能、大年夜数据、云计算(ABC)数据中间办事已经正式上线。>>>详细阅读
本文标题:从nginx日志原始二进制数据还原文件
地址:http://www.17bianji.com/lsqh/40037.html
1/2 1
从nginx日志原始二进制数据还原文件
作者: 来源: 2017-12-21 12:06:39 阅读次 我要评论
) >>> pb = re.compile('\\\\x0D\\\\x0A--.*$') >>> data = re.sub(pf,'',data) >>> data "\\xFF\\xD8\\xFF\\xE0\\x00\\x10JFIF\\x00\\x01\\x01\\x00\\x00\\x01\\x00 ... \\xBC'\\xF1\\x8C\\xCC\\x83,\\xFAo\\xD2_\\xA0\\x1A\\x7F\\xFF\\xD9\\x0D\\x0A--SgX5AyE7dwyg0smH-Tqpt-ggGQwTU9--\\x0D\\x0A | 42097 | - | - | - | 1.1.1.1 | d1fkkbcd02eb | 127.0.0.1:8888 | 0.034 | 0.123" >>> data = re.sub(pb,'',data) >>> data "\\xFF\\xD8\\xFF\\xE0\\x00\\x10JFIF\\x00\\x01\\x01\\x00\\x00\\x01\\x00 ... \\xBC'\\xF1\\x8C\\xCC\\x83,\\xFAo\\xD2_\\xA0\\x1A\\x7F\\xFF\\xD9"
关键词: 探索发现
乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。



