<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _requestDetails(self, ip_address=None):
 """Get IP address data by sending request to IPinfo API."""

        if ip_address not in self.cache:
            url = self.API_URL
            if ip_address:
                url += '/' + ip_address

            response = requests.get(url, headers=self._get_headers(), **self.request_options)
            if response.status_code == 429:
                raise RequestQuotaExceededError()
            response.raise_for_status()
            self.cache[ip_address] = response.json()

        return self.cache[ip_address]