工作中需要检验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>(