【发布时间】:2015-06-26 03:04:34
【问题描述】:
我正在尝试将长数字转换为 IP 地址,但 python 不允许我将 -ve 值转换为长数字。以下是我的功能,有人可以帮忙吗?
将ip地址从字符串转换为整数
def get_ip_address_int(ip_address):
return struct.unpack("!L", socket.inet_aton(ip_address))[0]
# Convert ip adress from integer to string
def get_ip_address_str(ip_address):
return socket.inet_ntoa(struct.pack('!L',ip_address))
ip_address = -1277278613
非常感谢。
【问题讨论】:
-
如果你尝试
socket.inet_ntoa(struct.pack('!L',(ip_address+2**32)%2**32)会发生什么? -
确定:您是否收到 "struct.error: argument out of range"?
标签: python-3.x ip ip-address