5
我使用inet_aton
到IPv4的IP(216.12.207.142)轉換爲字符串3624718222.我用下面的代碼INET_ATON類似的功能: 23 :: 207:142類似的字符串。它給我錯誤,因爲它不是IPv4地址。我怎樣才能做到這一點?對IPv6
我使用inet_aton
到IPv4的IP(216.12.207.142)轉換爲字符串3624718222.我用下面的代碼INET_ATON類似的功能: 23 :: 207:142類似的字符串。它給我錯誤,因爲它不是IPv4地址。我怎樣才能做到這一點?對IPv6
這是我以前用於此目的的代碼。需要注意的是它返回而不是字符串128位整數(整數一般是比較有用的)
from socket import inet_pton, AF_INET6
from struct import unpack
def ip6_to_integer(ip6):
ip6 = inet_pton(AF_INET6, ip6)
a, b = unpack(">QQ", ip6)
return (a << 64) | b
和測試它
>>> ip6_to_integer("2001:23::207:142")
42540490934961530759802172199372521794L
或字符串,如果你必須!
>>> str(ip6_to_integer("2001:23::207:142"))
'42540490934961530759802172199372521794'