async def METHOD_NAME(self):
    public_ip = await get_IP()
    addresses = (await self.ipfs_client.id())["Addresses"]
    for address in addresses:
        if public_ip in address and "/tcp" in address and "/p2p" in address:
            return address
    # Fallback to first possible public...
    for address in addresses:
        if "127.0.0.1" not in address and "/tcp" in address and "/p2p" in address:
            return address
    # Still no public there, try ourselves.
    for address in addresses:
        if "127.0.0.1" in address and "/tcp" in address and "/p2p" in address:
            return address.replace("127.0.0.1", public_ip)