Python IP范围与IP范围匹配

Ssr*_*tya 0 python ip-address

是否有任何方法可以检查网络范围内的某些IP地址是否存在于另一个IP范围的子网中?

Example: 10.0.1.0/18 in 123.1.0.0/8 
Run Code Online (Sandbox Code Playgroud)

如果它存在,我需要它返回True,否则返回False.

Thi*_*lle 6

从Python 3.3开始,您可以使用标准库的ipaddress模块:

from ipaddress import IPv4Address, IPv4Network

IPv4Address('192.0.2.6') in IPv4Network('192.0.2.0/28')
# True
IPv4Address('10.0.1.0') in IPv4Network('192.0.2.0/28')
# False
Run Code Online (Sandbox Code Playgroud)

如果您的意思是网络重叠,请使用overlaps:

In [14]: IPv4Network('10.0.1.0/24').overlaps(IPv4Network('192.0.2.0/28'))
Out[14]: False
Run Code Online (Sandbox Code Playgroud)

请注意,此模块在Python 3.3中标记为临时,但不再是3.6.所以享受它!