return True
-def is_ipv4_network(string_network):
- """Very simple check of the network format in no_proxy variable"""
- if '/' in string_network:
+def is_valid_cidr(string_network):
+ """Very simple check of the cidr format in no_proxy variable"""
+ if string_network.count('/') == 1:
+ try:
+ mask = int(string_network.split('/')[1])
+ except ValueError:
+ return False
+
+ if mask < 1 or mask > 32:
+ return False
+
try:
socket.inet_aton(string_network.split('/')[0])
except socket.error:
ip = netloc.split(':')[0]
if is_ipv4_address(ip):
for proxy_ip in no_proxy:
- if is_ipv4_network(proxy_ip):
+ if is_valid_cidr(proxy_ip):
if address_in_network(ip, proxy_ip):
return {}
else:
assert not is_ipv4_address('8.8.8.8.8')
assert not is_ipv4_address('localhost.localdomain')
- def test_is_ipv4_network(self):
- from requests.utils import is_ipv4_network
- assert not is_ipv4_network('8.8.8.8')
- assert is_ipv4_network('192.168.1.0/24')
+ def test_is_valid_cidr(self):
+ from requests.utils import is_valid_cidr
+ assert not is_valid_cidr('8.8.8.8')
+ assert is_valid_cidr('192.168.1.0/24')
def test_dotted_netmask(self):
from requests.utils import dotted_netmask