Merge branch 'endes123321-master'
This commit is contained in:
commit
f975ea99cb
2 changed files with 34 additions and 7 deletions
|
@ -33,12 +33,14 @@ def is_valid_public_ipv4(address, allow_localhost: bool = False):
|
||||||
parsed_ip = ipaddress.ip_address(address)
|
parsed_ip = ipaddress.ip_address(address)
|
||||||
if parsed_ip.is_loopback and allow_localhost:
|
if parsed_ip.is_loopback and allow_localhost:
|
||||||
return True
|
return True
|
||||||
return not any((parsed_ip.version != 4, parsed_ip.is_unspecified, parsed_ip.is_link_local,
|
|
||||||
parsed_ip.is_loopback, parsed_ip.is_multicast, parsed_ip.is_reserved, parsed_ip.is_private,
|
if any((parsed_ip.version != 4, parsed_ip.is_unspecified, parsed_ip.is_link_local, parsed_ip.is_loopback,
|
||||||
parsed_ip.is_reserved,
|
parsed_ip.is_multicast, parsed_ip.is_reserved, parsed_ip.is_private, parsed_ip.is_reserved)):
|
||||||
CARRIER_GRADE_NAT_SUBNET.supernet_of(ipaddress.ip_network(f"{address}/32")),
|
return False
|
||||||
IPV4_TO_6_RELAY_SUBNET.supernet_of(ipaddress.ip_network(f"{address}/32"))))
|
else:
|
||||||
except ipaddress.AddressValueError:
|
return not any((CARRIER_GRADE_NAT_SUBNET.supernet_of(ipaddress.ip_network(f"{address}/32")),
|
||||||
|
IPV4_TO_6_RELAY_SUBNET.supernet_of(ipaddress.ip_network(f"{address}/32"))))
|
||||||
|
except (ipaddress.AddressValueError, ValueError):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
import unittest
|
import unittest
|
||||||
from lbry.utils import generate_id
|
from lbry.utils import generate_id
|
||||||
from lbry.dht.peer import PeerManager, make_kademlia_peer
|
from lbry.dht.peer import PeerManager, make_kademlia_peer, is_valid_public_ipv4
|
||||||
from lbry.testcase import AsyncioTestCase
|
from lbry.testcase import AsyncioTestCase
|
||||||
|
|
||||||
|
|
||||||
|
@ -50,6 +50,31 @@ class PeerTest(AsyncioTestCase):
|
||||||
for i in range(32):
|
for i in range(32):
|
||||||
self.assertRaises(ValueError, make_kademlia_peer, self.node_ids[1], f"{224 + i}.0.0.0", 1000)
|
self.assertRaises(ValueError, make_kademlia_peer, self.node_ids[1], f"{224 + i}.0.0.0", 1000)
|
||||||
self.assertRaises(ValueError, make_kademlia_peer, self.node_ids[1], '255.255.255.255', 1000)
|
self.assertRaises(ValueError, make_kademlia_peer, self.node_ids[1], '255.255.255.255', 1000)
|
||||||
|
self.assertRaises(
|
||||||
|
ValueError, make_kademlia_peer, self.node_ids[1], 'beee:eeee:eeee:eeee:eeee:eeee:eeee:eeef', 1000
|
||||||
|
)
|
||||||
|
self.assertRaises(
|
||||||
|
ValueError, make_kademlia_peer, self.node_ids[1], '2001:db8::ff00:42:8329', 1000
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_is_valid_ipv4(self):
|
||||||
|
self.assertFalse(is_valid_public_ipv4('beee:eeee:eeee:eeee:eeee:eeee:eeee:eeef'))
|
||||||
|
self.assertFalse(is_valid_public_ipv4('beee:eeee:eeee:eeee:eeee:eeee:eeee:eeef', True))
|
||||||
|
|
||||||
|
self.assertFalse(is_valid_public_ipv4('2001:db8::ff00:42:8329'))
|
||||||
|
self.assertFalse(is_valid_public_ipv4('2001:db8::ff00:42:8329', True))
|
||||||
|
|
||||||
|
self.assertFalse(is_valid_public_ipv4('127.0.0.1'))
|
||||||
|
self.assertTrue(is_valid_public_ipv4('127.0.0.1', True))
|
||||||
|
|
||||||
|
self.assertFalse(is_valid_public_ipv4('172.16.0.1'))
|
||||||
|
self.assertFalse(is_valid_public_ipv4('172.16.0.1', True))
|
||||||
|
|
||||||
|
self.assertTrue(is_valid_public_ipv4('1.2.3.4'))
|
||||||
|
self.assertTrue(is_valid_public_ipv4('1.2.3.4', True))
|
||||||
|
|
||||||
|
self.assertFalse(is_valid_public_ipv4('derp'))
|
||||||
|
self.assertFalse(is_valid_public_ipv4('derp', True))
|
||||||
|
|
||||||
def test_boolean(self):
|
def test_boolean(self):
|
||||||
self.assertNotEqual(self.first_contact, self.second_contact)
|
self.assertNotEqual(self.first_contact, self.second_contact)
|
||||||
|
|
Loading…
Reference in a new issue