IPv6的inet_aton类似函数

2024-10-08 19:28:03 发布

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

我使用inet_aton将IPv4 IP(216.12.207.142)转换为字符串3624718222。我使用以下代码:

ip_dec = unpack('>L', inet_aton(ip))[0]

现在我需要将ipv6ipv2001:23::207:142转换为类似的字符串。它给我的错误,因为它不是IPv4地址。我该怎么做?在


Tags: 字符串代码ip地址错误decipv4inet
1条回答
网友
1楼 · 发布于 2024-10-08 19:28:03

这是我以前用过的代码。注意,它返回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

并进行测试

^{pr2}$

如果你必须的话,也可以用绳子!在

>>> str(ip6_to_integer("2001:23::207:142"))
'42540490934961530759802172199372521794'

相关问题 更多 >

    热门问题