как получить и преобразовать необработанные пакеты сокетов в читаемые запросы HTTP - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть python код для прослушивания необработанных пакетов. То, что я хотел бы, это только HTTP-пакеты. Как я могу преобразовать это в читаемый формат и получить только HTTP-пакеты?

Python Код

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
s.bind(('127.0.0.1', 0))
s.setsockopt(socket.IPPROTO_IP,socket.IP_HDRINCL,1)
s.ioctl(socket.SIO_RCVALL,socket.RCVALL_ON)

while True:
    raw_data = s.recvfrom(65565)
    print str(raw_data).decode('utf-8')

s.ioctl(socket.SIO_RCVALL,socket.RCVALL_OFF)

Образец пакета

('E\x00\x02X0*@\x00\x80\x06\x00\x00\x7f\x00\x00\x01\x7f\x00\x00\x01\xe6\xc0\xe6\xbfu\x04\x8c\x94\x84*\xec\xe2P\x18\x00\x1d\xe7u\x00\x00\x17\x03\x03\x02+\x00\x00\x00\x00\x
00\x00\x00\x01+\x82x\xdc\xf7\x94\xd6\x0f^\xedC\xab\xb8\xf0^c`\x00\xfb\x8b\xa3\xb7\x90\x8c\x0c\x88\x84\xfb\xc0\xc6S@\x0f\x05uX=o\xef\x17\xbeS\x95b|\x96\x9bLU\xeb\x9e\xa9/K
\xa7\xe8\x83cc\x85\xc8E\xd9\x0b\x86\x9d\xf4\x87\x15K\x14\x1e\n\x13c\xa5\xf9\x1bl\x82\xefQ\xe3_6\xe9O\xc8\xdc@`\xf1\xfb\xdc\xc4g\xc2\xb6\xf02\xcc.\xd9\x92cLV\xa4\xa7za\xa5
pK\xdaNV\x95TKj\xe6W%\x8d\xbf\r\xa0\xb4\xa0H\xfd\xc7\xff\x16\xf7\xa9\x03\xe5#*\x98\xecz\xac\xa7L\xcdEtr\xda\xbd\x81\xb5\x9a\x85\x96n\xb2\x8cqo\xff\xceJ\xc7rn\xe6\xc8\x04\
xd8\x06$K<\x0b\xecO\xad\xf0\x82\xb2\xfa"\x1c\x97\xc9\xcf\xece?h\x06\xc0\x9dE\xec\xcb)P\xb8\xd7\xfa\xe2\xf8\xe0\xa2\xee\xcc5\x19|%\\\xd9\x9a\x93\xa8\xca\x94\xcd\tq\xc3v\xa
1U\xe7\xa7\x00\x99U\x19\x81\x13C\x82; k\xfe;nL\x00}\x08\xdbO\xc5\x91\xd4\xcaR\x8c\xf4\t\xd6Z\x8ewt\x15\xbf\xcd\x15\x97\x7fd\x00\xf1\xa2\x01\xdc.\xb6\xbd\xbd4&\x13\xed\x14
\xa9u\x11\xb3\x11\x8b\xb5\xa3J\r\xafOq\')\xa9!S\x03\x9dd\xc4\x9e\xb8\xc2\xe1\x00\xb4pw\xcbJ\xd9\xfbr\x84\xf9D\x81?\xc7\x85^\xb8dNm\x1b\x97ysVjq-\xb9\xe9\xe6D\xd7\xc9\xd7\
x82\x81\xbf\xc2q6\xf6s\x8e{\xc5\xa6\xd72\xdc<\xeat=y\x0b\xbb]\x94\xfe\xb6\xe1SQ\xafo\x9ef\x9b\xc0%\xd0\xc8\x7f6\xb7\xa1\x04\x02\x86\xab)4@\x1b\xb5\xb3m\xc9[ \x02N,\x9d\xc
4i\x90$\x98\x00\x8bh\x89\xbc\xac\xa0\x86\xeb_\x18dgy\xd6\x15A\x14x\xb3n;\x02\xbe\xb3ir \x84\x9fd\xfd{\x06x\x0c\xab\xdcL*\xcf\x83\xb0r\x1bG6\x9b\xac\xbe\xa4\x84\xabA\xac5\
xb5\xc8\xca\x8f\xc9=\x7f\xafO\xa5\x9a;\xc1\x9dCC\x8a\xb3$:\xcb\x03\xa9\xad\xf8U\x02\xd8-8\xbe\xd4\x12iQaeV\xcbC\x9b\xd5Q\xdee%\xcb\x7f\x00H\xdd\x1a#\x892l\xa4TEg\xda\x1a\
xf8W\xd6\x89\xd0\\\x15\xfbVk\x8b\x9d\x02*\x8f\x13\xa8', ('127.0.0.1', 0))

Спасибо за помощь!

...