(self, ip_address: str)
Perform a IP to geolocation lookup.

        Args:
            ip_address - the IPv4 or IPv6 address to geolocate

        Returns:
            Either:
            A tuple comprising of the following in order
            - iso_code (str) - the ISO 31661 alpha-2 code of the country
            - latitude (str) - the north-south coordinate
            - longitude (str) - the east-west coordinate
            - country_name (str) - the full country name
            - city (str) - the city name that approximates the location
            Or None:
            - when the IP address does not have a resolvable location
Perform a IP to geolocation lookup.
Perform a IP to geolocation lookup .
def ip2geo(self, ip_address: str) -> Union[Tuple[
            str, str, str, str, str], None]:
        """Perform a IP to geolocation lookup.

        Args:
            ip_address - the IPv4 or IPv6 address to geolocate

        Returns:
            Either:
            A tuple comprising of the following in order
            - iso_code (str) - the ISO 31661 alpha-2 code of the country
            - latitude (str) - the north-south coordinate
            - longitude (str) - the east-west coordinate
            - country_name (str) - the full country name
            - city (str) - the city name that approximates the location
            Or None:
            - when the IP address does not have a resolvable location
        """
        raise NotImplementedError
def ip2geo ( self , ip_address : str ) -> Union [ Tuple [ str , str , str , str , str ] , None ] : raise NotImplementedError