python-如何检查IP地址是否属于IP子网列表

python-如何检查IP地址是否属于IP子网列表,python,python-2.7,Python,Python 2.7,检查IP地址是否属于IP子网列表的更快方法是什么 假设我们有以下IP子网列表: ip_ranges = [ '192.168.12.0/19', '209.102.103.0/20', '104.105.106.0/24' ] 现在我想检查IP209.102.103.0是否属于IP\u范围列表 我尝试了以下代码: #!/usr/bin/env python3 from __future__ import unicode_liter

检查IP地址是否属于IP子网列表的更快方法是什么

假设我们有以下IP子网列表:

ip_ranges =     [
    '192.168.12.0/19',
    '209.102.103.0/20',
    '104.105.106.0/24'
                ]
现在我想检查IP
209.102.103.0
是否属于
IP\u范围
列表

我尝试了以下代码:

#!/usr/bin/env python3
from __future__ import unicode_literals
import socket
import sys
from netaddr import *
from ipaddress import ip_network, ip_address

fun check_ip(ip):
    ip_ranges =     [
        '192.168.12.0/19',
        '209.102.103.0/20',
        '104.105.106.0/24'
                    ]

    networks = [ip_network(range) for range in ip_ranges]

    for n in networks:
        if ip_address(ip) in n:
            print("Yes")



domain = "google.com"
ip = socket.gethostbyname(domain)
check_ip(ip) 
不幸的是,我总是得到以下异常错误

ipaddress.AddressValueError:'xx.xxx.xxx.xxx'似乎不是IPv4或IPv6地址。您是否传入了字节(Python 2中的str)而不是unicode对象?


知道问题出在哪里吗?

不要盲目地排除一切。这样你就不知道实际的错误是什么——我们也不知道。删除
try..except
并添加完整的回溯。它将帮助我们帮助你。@usr2564301是的,你是对的!我已经编辑了我的帖子!我收到
意外错误:
干杯!“完整回溯”包含更多有用的信息,例如导致错误的确切行。@usr2564301这里是:
“xx.xxx.xxx.xxx”似乎不是IPv4或IPv6地址。您是否传入了字节(Python 2中的str)而不是unicode对象?
编辑代码后的实际错误:ipaddress.AddressValueError:“xx.xxx.xxx.xxx”似乎不是IPv4或IPv6地址。您是否传入了字节(Python2中的str)而不是unicode对象?