Не могу получить hexadecimal значение Python
У меня есть значения: Я беру их с телеграм каналов тысчами, в таком виде:
https://t.me/proxy?server=185.254.188.78&port=1754&secret=5ddee8e14d4583af36235d5d1c84afea
После разделения secret становится в кавычки и с этого все начинается.
secret='5ddee8e14d4583af36235d5d1c84afea'
server = '168.119.182.51'
port = 88
secret = 'ee00000000000000000000000000000000646c2e676f6f676c652e636f6d'
client = TelegramClient(
num['number'], num['api_id'], num['api_hash'],
connection=connection.ConnectionTcpMTProxyRandomizedIntermediate,
proxy=(server, port, secret)
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
value = 0xee14057ebf8839b15682b5c558d2f84588646c2e676f6f676c652e636f6d
print(value)
Автор решения: insolor
→ Ссылка
Если нужно преобразовать строку с 16-ричными значениям в набор байт на основе этих значений, можно воспользоваться функцией binascii.unhexlify:
import binascii
value = 'ee14057ebf8839b15682b5c558d2f84588646c2e676f6f676c652e636f6d'
print(binascii.unhexlify(value))
Вывод: b'\xee\x14\x05~\xbf\x889\xb1V\x82\xb5\xc5X\xd2\xf8E\x88dl.google.com'
bytes.fromhex тоже работает:
value = 'ee14057ebf8839b15682b5c558d2f84588646c2e676f6f676c652e636f6d'
print(bytes.fromhex(value))
Вывод такой же.
Предополжим что это число (хотя вряд ли, судя по присутствию dl.google.com), тогда можно преобразовать в целое с помощью int:
value = 'ee14057ebf8839b15682b5c558d2f84588646c2e676f6f676c652e636f6d'
print(int(value, 16))
# Вывод: 1643155408172129359520301427715915034326611778413272222625799639797034861
# Проверяем, что это то же самое число, что было:
print(hex(int(value, 16)))
# Вывод: 0xee14057ebf8839b15682b5c558d2f84588646c2e676f6f676c652e636f6d