docs: async def auto_detect_at_address(cls, address, auth):
          '''Try to detect a SOCKS proxy at address using the authentication method (or None).
          SOCKS5, SOCKS4a and SOCKS are tried in order.  If a SOCKS proxy is detected a
          SOCKSProxy object is returned.
  
          Returning a SOCKSProxy does not mean it is functioning - for example, it may have
          no network connectivity.
  
          If no proxy is detected return None.
          '''
          for protocol in (SOCKS5, SOCKS4a, SOCKS4):
              proxy = cls(address, protocol, auth)
              if await proxy._detect_proxy():
                  return proxy
          return None