gpt4 book ai didi

python - python 中 init_ntoa 的字符串到十六进制

转载 作者:行者123 更新时间:2023-12-01 01:37:39 27 4
gpt4 key购买 nike

我有一个字符串

'0a0a0a02'

我想将其转换为 IP 地址格式 (10.10.10.2)。

我正在 python 中使用函数 - socket.inet_ntoa()。问题是 inet_ntoa() 的输入必须采用以下形式 - '\x0a\x0a\x0a\x02'。我尝试使用字符串连接将 '\x' 附加到原始字符串,但它不起作用。

>>> a = '0a'
>>> b = '\x'+a
ValueError: invalid \x escape
>>> b = '\\x' + a
>>> b
'\\x0a'
>>> b[1:]
'x0a'
>>> b[0:]
'\\x0a'
>>> print(b)
\x0a
>>> b=b+b+b+b
>>> print(b)
\x0a\x0a\x0a\x0a
>>> socket.inet_ntoa(b)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
socket.error: packed IP wrong length for inet_ntoa
>>>

如何在Python中将字符串0a0a0a02转换为\x0a\x0a\x0a\x02

最佳答案

您应该使用binascii.unhexlify() .

>>> a='0a0a0a02'
>>> b=binascii.unhexlify(a) #Do take care of the imports
>>> inet_ntoa(b)
'10.10.10.2'

关于python - python 中 init_ntoa 的字符串到十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52241969/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com