diff --git a/Lib/ipaddress.py b/Lib/ipaddress.py index ca3031a..f4d815b 100644 --- a/Lib/ipaddress.py +++ b/Lib/ipaddress.py @@ -636,12 +636,12 @@ class _BaseNetwork(_IPAddressBase): broadcast = int(self.broadcast_address) if n >= 0: if network + n > broadcast: - raise IndexError + raise IndexError("address out of range") return self._address_class(network + n) else: n += 1 if broadcast + n < network: - raise IndexError + raise IndexError("address out of range") return self._address_class(broadcast + n) def __lt__(self, other): diff --git a/Lib/test/test_ipaddress.py b/Lib/test/test_ipaddress.py index 3edea08..d344720 100644 --- a/Lib/test/test_ipaddress.py +++ b/Lib/test/test_ipaddress.py @@ -1176,6 +1176,7 @@ class IpaddrUnitTest(unittest.TestCase): self.assertEqual(str(self.ipv6_network[5]), '2001:658:22a:cafe::5') + self.assertRaises(IndexError, self.ipv6_network.__getitem__, 1<<64) def testGetitem(self): # http://code.google.com/p/ipaddr-py/issues/detail?id=15