bpo-39481: PEP 585 for ipaddress.py (GH-19418)

diff --git a/Lib/ipaddress.py b/Lib/ipaddress.py
index ac1143a..439f241 100644
--- a/Lib/ipaddress.py
+++ b/Lib/ipaddress.py
@@ -12,6 +12,7 @@
 
 
 import functools
+import types
 
 IPV4LENGTH = 32
 IPV6LENGTH = 128
@@ -1124,6 +1125,7 @@
         return (self.network_address.is_loopback and
                 self.broadcast_address.is_loopback)
 
+    __class_getitem__ = classmethod(types.GenericAlias)
 
 class _BaseV4:
 
@@ -1444,6 +1446,8 @@
         return '%s/%s' % (self._string_from_ip_int(self._ip),
                           self.hostmask)
 
+    __class_getitem__ = classmethod(types.GenericAlias)
+
 
 class IPv4Network(_BaseV4, _BaseNetwork):
 
@@ -2152,6 +2156,8 @@
     def is_loopback(self):
         return self._ip == 1 and self.network.is_loopback
 
+    __class_getitem__ = classmethod(types.GenericAlias)
+
 
 class IPv6Network(_BaseV6, _BaseNetwork):