Декодер для файлов .pcap. CUrl PyCurl - PullRequest
0 голосов
/ 16 февраля 2020

Я пытаюсь декодировать файл pcap с моего flask сервера и сохранить его в папке с помощью PyCurl.

import pycurl
import certifi
import io

buffer = io.BytesIO()
c = pycurl.Curl()
c.setopt(c.URL, 'http://192.168.1.239:5000/return-file')
c.setopt(c.WRITEDATA, buffer)
c.setopt(c.CAINFO, certifi.where())
c.perform()
c.close()
body = buffer.getvalue()
print(body)

Однако, когда я запускаю этот код, я получаю строку байтов:

b'\n\r\r\nx\x00\x00\x00M<+\x1a\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x03\x00\x11\x00Linux 4.19.75-v7+\x00\x00\x00\x04\x00<\x00Dumpcap (Wireshark) 2.6.8 (Git v2.6.8 packaged as 2.6.8-1.1)\x00\x00\x00\x00x\x00\x00\x00\x01\x00\x00\x00D\x00\x00\x00\x01\x00\x00\x00\x00\x00\x04\x00\x02\x00\x05\x00wlan0\x00\x00\x00\t\x00\x01\x00\t\x00\x00\x00\x0c\x00\x11\x00Linux 4.19.75-v7+\x00\x00\x00\x00\x00\x00\x00D\x00\x00\x00\x06\x00\x00\x00t\x00\x00\x00\x00\x00\x00\x00\xe7\x7f\xf1\x15\x87\x98\xa0pR\x00\x00\x00R\x00\x00\x00\xff\xff\xff\xff\xff\xff\xb0p-]\xc4\xc6\x08\x00E\x00\x00DU\x19\x00\x00@\x11\xa0\xff\xc0\xa8\x01A\xc0\xa8\x01\xff\xe1\x15\xe1\x15\x000Y\x08SpotUdp0\xee\x10\x88\xf5\xb4\xfc\x94\xe9\x00\x01\x00\x00hq\x9d\x91\xb1?\xe1\x936W\xf4S$\x12\x028\x89\xb0\xa2\xe5\x00\x00t\x00\x00\x00\x06\x00\x00\x00\\\x00\x00\x00\x00\x00\x00\x00\xe7\x7f\xf1\x15\x93\x0c\xb1t<\x00\x00\x00<\x00\x00\x00\x01\x80\xc2\x00\x00\x00@\xc7)\x133*\x00.BB\x03\x00\x00\x00\x00\x00\x80\x00@\xc7)\x133\'\x00\x00\x00\x00\x80\x00@\xc7)\x133\'\x80\x03\x00\x00\x14\x00\x02\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00\x06\x00\x00\x00\xd0\x00\x00\x00\x00\x00\x00\x00\xe7\x7f\xf1\x15\xdcG\x08\xac\xb0\x00\x00\x00\xb0\x00\x00\x00t@\xbb\x179\t\xc4\xe9\x84\x1dW\x03\x08\x00E\x00\x00\xa2O,@\x00@\x06f\n\xc0\xa8\x01\xef\xc0\xa8\x01\xe0\x99@\x1fI\xc2\xba\x02\xf0\xdf*\xc5D\x80\x18\x01l<\x19\x00\x00\x01\x01\x08\n\xcdb\x08\x89\x00Q\x067\x17\x03\x03\x00iJ#\x9b\xf7\xbf\xaa\x80\x0b\xf1\x87\xd6|\t\x14\'6\xb7\x9aN\xaf\x97E\xf3\xe0FsN\xdc\xcfH\xa9\xad\x12\xcb\xb27\x02+\x8f\x00\xfd\x07\xd6}Nk\xd3(\x92\xff)X\xfa\xa8\xf7 \x87\xad\x0c$\xfd\x1f\x89\xadF\xc4\xf5\xf3\x1d\xc8\xca\x07-\xb1\xcf&\xa8}k\xc1\xb2\xe3Qc\xbdB\xe5\x0cH\xcf\x98\x1f\x96\x94\xcb~\x18\xbd\'\xd1\xd9\xb4J\xd61\xd0\x00\x00\x00\x06\x00\x00\x00\xd0\x00\x00\x00\x00\x00\x00\x00\xe7\x7f\xf1\x15\xb4\xc9.\xac\xb0\x00\x00\x00\xb0\x00\x00\x00\xc4\xe9\x84\x1dW\x03t@\xbb\x179\t\x08\x00E\x00\x00\xa2\xe1\xd7@\x00@\x06\xd3^\xc0\xa8\x01\xe0\xc0\xa8\x01\xef\x1fI\x99@\xdf*\xc5D\xc2\xba\x03^\x80\x18\x02\xd9)=\x00\x00\x01\x01\x08\n\x00Q\n \xcdb\x08\x89\x17\x03\x03\x00i!\x08\xad\xfb\x8a\x86|,\xd6\xc8_\xdfr\xfak\x84\x88\xc3\xac\x01\xeec=\x1e53A\x9c\xac \xdd\x00x\xbd\x98SDsq\xd3\x1b\x1f^[\x89<\xca\xe9\xf5_\x05,V\xa4\x7f\xb7\x94\xaa\x87\x93\xdc\x1e"\x1a\xe8\xd4:\x04\xce\x9c*_I\x85+)$Q\xdf\xe3\xf1p;@"\x88\xb4M\x94\x01\xea\x1f\xd1\xfd\xa9\x8d\x135\xec\\Gi\xcf\xe8+\xd0\x00\x00\x00\x06\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\xe7\x7f\xf1\x15\xbe\xc12\xacB\x00\x00\x00B\x00\x00\x00t@\xbb\x179\t\xc4\xe9\x84\x1dW\x03\x08\x00E\x00\x004O-@\x00@\x06fw\xc0\xa8\x01\xef\xc0\xa8\x01\xe0\x99@\x1fI\xc2\xba\x03^\xdf*\xc5\xb2\x80\x10\x01l\xecQ\x00\x00\x01\x01\x08\n\xcdb\x08\x8c\x00Q\n \x00\x00d\x00\x00\x00\x06\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\xe7\x7f\xf1\x15\x1c6G\xbeB\x00\x00\x00B\x00\x00\x00t@\xbb\x179\t\xc4\xe9\x84\x1dW\x03\x08\x00E\x00\x004!5@\x00@\x06\x94o\xc0\xa8\x01\xef\xc0\xa8\x01\xe0\x99>\x1fI0@9!\xe7\xcc\xba*\x80\x10\x01ln\x83\x00\x00\x01\x01\x08\n\xcdb\t\xbc\x00P\xe6^\x00\x00d\x00\x00\x00\x06\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\xe7\x7f\xf1\x150\x7ff\xbeB\x00\x00\x00B\x00\x00\x00\xc4\xe9\x84\x1dW\x03t@\xbb\x179\t\x08\x00E\x00\x004L\xfd@\x00@\x06h\xa7\xc0\xa8\x01\xe0\xc0\xa8\x01\xef\x1fI\x99>\xe7\xcc\xba*0@9"\x80\x10\x02\xd9\xf6\xfb\x00\x00\x01\x01\x08\n\x00Q\n]\xcdB[\xf6\x00\x00d\x00\x00\x00\x06\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00\xe7\x7f\xf1\x15\xd6\x8a\xd1\xd0\xd1\x00\x00\x00\xd1\x00\x00\x00\x01\x00^\x7f\xff\xfa\xc4\xe9\x84\x1dW\x03\x08\x00E\x00\x00\xc37\x01@\x00\x01\x11\x8f\x97\xc0\xa8\x01\xef\xef\xff\xff\xfa\xcbm\x07l\x00\xafS\x02M-SEARCH * HTTP/1.1\r\nHOST: 239.255.255.250:1900\r\nMAN: "ssdp:discover"\r\nMX: 1\r\nST: urn:dial-multiscreen-org:service:dial:1\r\nUSER-AGENT: Chromium/74.0.3729.157 Linux\r\n\r\n\x00\x00\x00\xf4\x00\x00\x00\x06\x00\x00\x00P\x02\x00\x00\x00\x00\x00\x00\xe7\x7f\xf1\x156\xeaT\xd1-\x02\x00\x00-\x02\x00\x00\xc4\xe9\x84\x1dW\x03t@\xbb\x179\t\x08\x00E\x00\x02\x1f\x8a\xb6@\x00@\x11(\xf8\xc0\xa8\x01\xe0\xc0\xa8\x01\xef\xcd\xf1\xcbm\x02\x0bE\x0cHTTP/1.1 200 OK\r\nCACHE-CONTROL: max-age=1800\r\nDATE: Sat, 08 Feb 2020 18:12:56 GMT\r\nEXT:\r\nLOCATION: http://192.168.1.224:8008/ssdp/device-desc.xml\r\nOPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01\r\n01-NLS: fad3c178-1dd1-11b2-bbc3-f48100d22652\r\nSERVER: Linux/3.10.79, UPnP/1.0, Portable SDK for UPnP devices/1.6.18\r\nX-User-Agent: redsonic\r\nST: urn:dial-multiscreen-org:service:dial:1\r\nUSN: uuid:79c54bb6-7342-bac1-2eb7-ca8c16517a98::urn:dial-multiscreen-org:service:dial:1\r\nBOOTID.UPNP.ORG: 0\r\nCONFIGID.UPNP.ORG: 1\r\n\r\n\x00\x00\x00P\x02\x00\x00\x06\x00\x00\x00\\\x00\x00\x00\x00\x00\x00\x00\xe7\x7f\xf1\x15\x81\xad\xe6\xeb<\x00\x00\x00<\x00\x00\x00\x01\x80\xc2\x00\x00\x00@\xc7)\x133*\x00.BB\x03\x00\x00\x00\x00\x00\x80\x00@\xc7)\x133\'\x00\x00\x00\x00\x80\x00@\xc7)\x133\'\x80\x03\x00\x00\x14\x00\x02\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00\x05\x00\x00\x00l\x00\x00\x00\x00\x00\x00\x00\x14\x9e\x05\x00\x17\x80\xb7t\x01\x00\x1c\x00Counters provided by dumpcap\x02\x00\x08\x00\x14\x9e\x05\x00\x1f.\x89t\x03\x00\x08\x00\x14\x9e\x05\x000~\xb7t\x04\x00\x08\x00\n\x00\x00\x00\x00\x00\x00\x00\x05\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00l\x00\x00\x00'

, а не загруженный файл. В журнале моего сервера он обнаружил, что программа достигла сервера.

...