有任何人比较两个ipv6地址的好主意。看起来短缺规则使它变得复杂。
例如完整地址 1234:将0db8:0000:0000:0000:FF00:FF00:0011
答案 0 :(得分:2)
您可以使用标准库函数socket.inet_pton
将地址转换为字节字符串以进行比较:
>>> socket.inet_pton(socket.AF_INET6,'1234:0db8::ff00:ff00:0011')
'\x124\r\xb8\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x11'
>>> socket.inet_pton(socket.AF_INET6,'1234:0db8:0000:0000:0000:ff00:ff00:0011')
'\x124\r\xb8\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x11'
这将降低您创建自己的IPv6错误的风险。
上面的示例是在python中,但inet_pton
函数可用于不同的平台和语言:
答案 1 :(得分:0)
你可以用冒号分割它,然后比较每个值。 如果您遇到空字段 - >为它插入'0000'。 如果您遇到少于4位的字段 - >用零填充
此外,您可以为每个字段赋予权重以强调字段的值。