您好我正在编写一个API来与ubuntu上的网络管理器进行通信。当我要求IP地址时,dbus服务返回如下内容:
broadcast_add = dbus.UInt32(4278298816L, variant_level=1)
到目前为止,我正在做的是通过以下方式将其转换为32位二进制文件:
In [1]: '{0:0<32}'.format(bin(broadcast_add)[2:])
Out[1]: '11111111000000011010100011000000'
是否有任何直接的方法将此uint32转换为可读的IP地址,如
192.168.1.255
答案 0 :(得分:1)
如果您可以访问此值4278298816
,则可以尝试使用struct
,例如:
>>> import struct
>>>
>>> struct.unpack('<BBBB', struct.pack('<I', 4278298816))
(192, 168, 1, 255)
>>>
>>> '{}.{}.{}.{}'.format(*_)
'192.168.1.255'
>>>