Я тестирую следующий код Python, чтобы получить баннер MySQL, и пытаюсь декодировать вывод байта, чтобы получить строку версии.
Код
import socket
from pprint import pprint
def grab_banner(hostname, port):
try:
s = socket.socket()
s.connect((hostname, port))
data = s.recv(64)
s.close()
print(str(data))
except Exception as e:
print(e)
grab_banner(localhost, 3306)
Я пробовал использовать data.decode('utf-8')
, но это дает мне ошибку:
'utf-8' codec can't decode byte 0xda in position 35: invalid continuation byte
Текущий выход
b'a\x00\x00\x00\n5.5.5-10.3.22-MariaDB-cll-lve\x00\xbb\xebx\x00(4kBG|\\7\x00\xfe\xf7\xe0\x02\x00\xbf\x81\x15\x00\x00\x00\x00\x00\x00\x07\x00'
Желаемый выход
5.5.5-10.3.22-MariaDB-cll-lve