首页 > 解决方案 > 比较两个 IPv6 地址是否相等

问题描述

我需要比较两个IP version6,如果相等。

这不是一个简单的字符串比较,因为同一个地址可以用多种方式写入。我不能使用第三方软件包。例如:

2041:0000:140F:0000:0000:0000:875B:131B
2041:0000:140F::875B:131B
2041:0:140F::875B:131B

从windows ip config可以是:2041:0:140F::875B:131B%11

标签: python

解决方案


如果您使用的是 Python 3.3+,则可以使用标准库模块 ipaddress

Python 3.7.5 (default, Dec 15 2019, 17:54:26) 
[GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ipaddress
>>> a=ipaddress.ip_address('2041:0000:140F:0000:0000:0000:875B:131B')
>>> b=ipaddress.ip_address('2041:0000:140F::875B:131B')
>>> c=ipaddress.ip_address('2041:0:140F::875B:131B')
>>> a==b==c
True

推荐阅读