text: """Middleware to fetch real IP."""
  
  from ipaddress import ip_address
  
  from aiohttp.web import middleware
  from aiohttp.hdrs import X_FORWARDED_FOR
  
  from homeassistant.core import callback
  
  from .const import KEY_REAL_IP
  
  
  @callback
  def setup_real_ip(app, use_x_forwarded_for, trusted_networks):
      """Create IP Ban middleware for the app."""
      @middleware
      async def real_ip_middleware(request, handler):
          """Real IP middleware."""
          connected_ip = ip_address(
              request.transport.get_extra_info('peername')[0])
          request[KEY_REAL_IP] = connected_ip
  
          # Only use the XFF header if enabled, present, and from a trusted proxy
          if (use_x_forwarded_for and
                  X_FORWARDED_FOR in request.headers and
                  any(connected_ip in trusted_network
                      for trusted_network in trusted_networks)):
              request[KEY_REAL_IP] = ip_address(
                  request.headers.get(X_FORWARDED_FOR).split(',')[0])
  
          return await handler(request)
  
      async def app_startup(app):
          """Initialize bans when app starts up."""
          app.middlewares.append(real_ip_middleware)
  
      app.on_startup.append(app_startup)
  