code: def is_reachable(host, port=23):
      
      try:
          addresses = socket.getaddrinfo(
              host, port, socket.AF_UNSPEC, socket.SOCK_STREAM
          )
      except socket.gaierror:
          return False
  
      for family, _, _, _, sockaddr in addresses:
          sock = socket.socket(family, socket.SOCK_STREAM)
          sock.settimeout(5)
          try:
              sock.connect(sockaddr)
          except IOError:
              continue
  
          sock.shutdown(socket.SHUT_RDWR)
          sock.close()
          # Wait 2 sec for socket to shutdown
          time.sleep(2)
          break
      else:
          return False
      return True
docs: Check reachability for specified hostname/port.
  
      It tries to open TCP socket.
      It supports IPv6.
      :param host: hostname or ip address string
      :rtype: str
      :param port: tcp port number
      :rtype: number
      :return: True if host is reachable else false