python-如何检查IP地址是否属于IP子网列表
检查IP地址是否属于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_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_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对象?