问题描述
#!/usr/bin/python3.8
""" 检查子网中是否有ip """
导入ip地址
MY_VPC_subnetS = ["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16"]
MY_VPC_IPS = ["10.16.0.0/12"、"172.16.12.0/28"、"10.15.90.2/32"]
对于 MY_VPC_subnetS 中的网络: internal_network = ipaddress.ip_network(网络) 对于 MY_VPC_IPS 中的 my_valid_ip: my_ip = ipaddress.ip_network(my_valid_ip) 如果 my_ip.subnet_of(internal_network): 打印(my_ip,“在子网中”,internal_network)
我的警告是 check_ip.py:17:11: E1101: 'IPv4Network' 实例没有 'subnet_of' 成员(无成员) check_ip.py:17:11: E1101: 'IPv6Network' 实例没有 'subnet_of' 成员(无成员)
解决方法
您的代码未格式化,但使用假定格式似乎对我来说工作正常:
$ cat test.py
import ipaddress
MY_VPC_SUBNETS = ["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16"]
MY_VPC_IPS = ["10.16.0.0/12","172.16.12.0/28","10.15.90.2/32"]
for network in MY_VPC_SUBNETS:
internal_network = ipaddress.ip_network(network)
for my_valid_ip in MY_VPC_IPS:
my_ip = ipaddress.ip_network(my_valid_ip)
if my_ip.subnet_of(internal_network):
print(my_ip,"in subnet",internal_network)
$ python3 test.py
10.16.0.0/12 in subnet 10.0.0.0/8
10.15.90.2/32 in subnet 10.0.0.0/8
172.16.12.0/28 in subnet 172.16.0.0/12
$ python3 --version
Python 3.8.7
$ pylint --disable=C0111 test.py
-------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 9.00/10,+1.00)
禁用只是为了缺少文档字符串。