工作中需要检验ip和网段是否合法,本来写了正则,乱七八糟一大堆,考虑到之后不好维护,搜了一下有没有现成的工具。找到了 ipaddress,一个python的内置包,用来检验ip和网段,IPv4 和IPv6都使用。
需求:前端传来的可能是一个ip地址,如10.11.23.34
也有可能是斜线表示法(CIDR表示法)的一个网段,如10.11.23.34/26
判断合法性
ipaddress用法
- 检查ip是否合法,此处可输入ipv4或ipv6
In : ipaddress.ip_address('10.11.23.34')
Out: IPv4Address('10.11.23.34')
# 若ip不合法会直接报错ValueError
In [7]: ipaddress.ip_address('10.11.23.322')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-7-5621f8f208b8> in <module>()
----> 1 ipaddress.ip_address('10.11.23.322')
ValueError: '10.11.23.322' does not appear to be

本文介绍如何使用Python内置的ipaddress模块来检验IP地址和CIDR网段的合法性,避免使用复杂的正则表达式。通过示例代码展示模块的基本用法,包括检查单个IP和网段,以及转换为字符串格式。同时强调了查阅Python文档的重要性,以发现更多可用工具。
最低0.47元/天 解锁文章
4162

被折叠的 条评论
为什么被折叠?



