Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python socket проблема

Помощник PYTHON Профи (607), на голосовании 2 месяца назад
Я создал простейший веб сервер, который при подключении пользователя отправляет в консоль информацию полученную им от браузера ( data = conn.recv(4096) ). Так вот,
когда я захожу в браузере через ПК в консоли выводиться заголовки по типу user agent и ТД, а когда с телефона выводится непонятно что



это то что выводится в консоли, можно ли эту строку как то декодировать? или както получить схожий ответ как будто с пк

b"\x16\x03\x01\x02\x00\x01\x00\x01\xfc\x03\x03\xb3\x0e\xa4w8a\x1bu\x98\x89\xa2\x9f\xd4\xc78\xe9\x00\xe6\x11\xdc\x9a\xad{X\xfc\x07\xcfy-;\xb6O K4\x16\xc8|s\xa6\xe6$\x96l<\x1a\xb4\x9f&yXT\xf4\x99\x98\xbd\xc0\x1a\xa0\xf9Z]\xf0\xd8d\x00\xea\xea\x13\x01\x13\x02\x13\x03\xc0+\xc0/\xc0,\xc00\xcc\xa9\xcc\xa8\xc0\x13\xc0\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93\xda\xda\x00\x00\x00\x05\x00\x05\x01\x00\x00\x00\x00\x00\x0b\x00\x02\x01\x00\x00#\x00\x00\x00\x12\x00\x00\x00\x10\x00\x0e\x00\x0c\x02h2\x08http/1.1\xff\x01\x00\x01\x00Di\x00\x05\x00\x03\x02h2\x00\n\x00\n\x00\x08JJ\x00\x1d\x00\x17\x00\x18\x00\r\x00\x12\x00\x10\x04\x03\x08\x04\x04\x01\x05\x03\x08\x05\x05\x01\x08\x06\x06\x01\x00-\x00\x02\x01\x01\xfe\r\x00\xda\x00\x00\x01\x00\x01]\x00 \xc32\xce\xa7V\x81\x91\xb2!\xb9q\xd5\xb5\x13\xe7\xef\x8a|V\x82\xb9\xab1\xfbt\xdb\xa73\x11\x8b\x8dY\x00\xb0\xa4g\xcb_C\xf9-\x82\xe0\xf4\x10\xf3\xd2v\x13\xb12\xc9Ff\xb15\xe1\x9b\xfc\xaf\x1d\xc5\xb4Z\x07\xac\x88\xc0\xc2s\xc3\r\xf7cGi[\xda&\xba\x1cu35\x15\xdfX\xe4J:\x972Q\x91\xd2\xfa\xcf2\xcb\x94<M3\xc8\x8c\x0c.SP+\xc9\xd5\x8e\x8f\x1fn\x90\x8f\xf8s\x00\xdd\xcb\x0f8\xa3\tn\xf1\xdbT\x1e-\xdf\xdc\xa7\x0b\xff\xa5\xa4Q\xfb\xc0&\xbf\x9c*l/\x1dD\x91\x88\x05*:\xfa_\xe7c\x01\xd7M~\xa4\xd13>z!\xda\xf1\x07\xdc_\xde\xb5\xfb\xbe\xff\xba\x00\x80\xe8\xd2x\xc6\xd0?\xdbi\xcc\xad(\xa5\xbe\xa0r\x1eV'!\x8a\x97\xf2\xe7\x84\xfe Z\x003\x00+\x00)JJ\x00\x01\x00\x00\x1d\x00 \xf4\x17\xc7\x14\xaer\xe3\x12\xd4o\xe1O#6\x00=\x92\x8ax\xba\xd0\xc2z\xd6\x89\xc5\x83\xe6V\xc1\xdc}\x00+\x00\x07\x06\x1a\x1a\x03\x04\x03\x03\x00\x17\x00\x00\x00\x1b\x00\x03\x02\x00\x02JJ\x00\x01\x00\x00\x15\x00\x02\x00\x00"
Голосование за лучший ответ
lakonismos Мастер (1308) 3 месяца назад
сделай обработку данных на сервере, чтоб было не от клиента данные а сгенирированные твоим кодом, обработай поля. версии http может не стыкуются.
Помощник PYTHONПрофи (607) 3 месяца назад
как мне это сделать, можно пожалуйста какой-нибудь пример?
lakonismos Мастер (1308) пррапра, if "User" in data: print("Found!")
Лайт Ягами Искусственный Интеллект (300645) 3 месяца назад
Это у тебя TLS хэндшейк. Не пытайся работать с ним вручную, ничего не получится.
Проще всего запихнуть сервер за nginx и настроить nginx, чтобы он проксировал запрос тебе на сервер уже без криптографии, через директиву proxy_pass.
Никита Документов Профи (976) 2 месяца назад
декодируй полученные данные в отдельной переменной, пример:
 data = conn.recv(1024)
data1 = data.decode()
data2 = data1.split(',') #вместо запятой может быть ваш символ
print(data)
Похожие вопросы