python - 比较两个 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 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
推荐阅读
- java - 试图将 msqlite 字符串日期转换为 java.sql.date
- python-3.x - 将文件路径作为参数传递给 FLASK(Python) 中的 URL
- c# - 如何在 STRING_AGG 之后删除重复项?
- postgresql - 尝试使用生成的 SQL 查询恢复备份会导致语法错误
- android - 将资产中的 index.html 加载到 WebView 中,但找不到 index.html 中引用的其他文件
- javascript - try-catch 块是使用“in”运算符的可靠方法吗?
- c# - 瀑布对话框中的 C# bot V4 文本提示
- django - 我如何存储锦标赛排名
- javascript - 第二次单击按钮没有获得新的表单字段值
- javascript - 从 HTML 中清理/去除 Javascript