关于 ipaddress 的 pylint 警告

时间:2021-02-14 17:28:03

标签: python-3.8

#!/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' 成员(无成员)

1 个答案:

答案 0 :(得分:0)

您的代码未格式化,但使用假定格式似乎对我来说工作正常:

 $ 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)

禁用只是为了缺少文档字符串。

相关问题