def METHOD_NAME(self, ipaddr: str) -> (float, float, float):
    """
    Compute the network's opinion for a given IP
    Reports about the IP and the reporter's credentials are fetched from the database. An opinion for that IP is
    computed and cached in the database for later use.
    :param ipaddr: The IP address for which the opinion is computed
    :return: average peer reputation, final score and final confidence
    """
    # get report on that ip that is at most max_age old
    # if no such report is found:
    reports_on_ip = self.trustdb.METHOD_NAME(ipaddr)
    if len(reports_on_ip) == 0:
        return None, None
    combined_score, combined_confidence = self.assemble_peer_opinion(
        reports_on_ip
    )
    self.trustdb.update_cached_network_opinion(
        'ip', ipaddr, combined_score, combined_confidence, 0
    )
    return combined_score, combined_confidence