code: def _get(self, ip):
          
          # Geoloc updated up to once a week:
          # http://ipinfo.io/developers/data#geolocation-data
          retries = 10
          for retry in range(retries):
              try:
                  response = requests.get('http://ipinfo.io/%s/json' % ip,
                                          verify=False, timeout=1)  # nosec
                  if response.status_code == 429:
                      raise RateExceededError
                  return response.json()
              except (requests.ReadTimeout, requests.ConnectTimeout):
                  pass
          return {}
docs: Get information about an IP.
  
          Args:
              ip (str): an IP (xxx.xxx.xxx.xxx).
  
          Returns:
              dict: see http://ipinfo.io/developers/getting-started