将ip地址转换为二进制表示

2024-05-16 14:51:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我想得到ip地址的字节表示(big endian,4字节)。你知道吗

我使用的是python2,我使用的是这个模块:https://github.com/phihag/ipaddress

如果我想得到127.0.0.1的字节表示,我会得到预期的结果。你知道吗

>>> ip_address(u'127.0.0.1').packed
'\x7f\x00\x00\x01'

但是对于52.4.20.183,我得到了这个结果:

>>> ip_address(u'52.4.20.183').packed
'4\x04\x14\xb7'

这种格式在我看来很奇怪,尤其是前导的4。我以为是\x34\x04\x14\xB7。但显然,两者都是一样的:

>>> ipaddress.IPv4Address(b'4\x04\x14\xb7')
IPv4Address(u'52.4.20.183')
>>> ipaddress.IPv4Address(b'\x34\x04\x14\xB7')
IPv4Address(u'52.4.20.183')

为什么52.4.20.1834\x04\x14\xb7的格式是52.4.20.1834\x04\x14\xb7的格式?在哪里可以找到有关它的更多信息?你知道吗


Tags: ip字节address地址格式ipaddressbigx00