--- ---

I found this snippet long ago on a site called delphi3000 but the site does not exist anymore. This code needs some work. It is supposed to check for a specific URL is online or not. It does not work as intended. It works to determine if the computer is connected or not.

    function IsConnected: Boolean;
    const
      // Local system has a valid connection to the Internet, but it might or might
      // not be currently connected.
      INTERNET_CONNECTION_CONFIGURED = $40;

      // Local system uses a local area network to connect to the Internet.
      INTERNET_CONNECTION_LAN = $02;

      // Local system uses a modem to connect to the Internet
      INTERNET_CONNECTION_MODEM = $01;

      // Local system is in offline mode.
      INTERNET_CONNECTION_OFFLINE = $20;

      // Local system uses a proxy server to connect to the Internet
      INTERNET_CONNECTION_PROXY = $04;

      // Local system has RAS installed.
      INTERNET_RAS_INSTALLED = $10;

    var
      InetState: DWORD;
      hHttpSession, hReqUrl: HInternet;
    begin
      Result:= InternetGetConnectedState(@InetState, 0);
      if (
        Result
        and
        (
          InetState and INTERNET_CONNECTION_CONFIGURED
            = INTERNET_CONNECTION_CONFIGURED)
        ) then
      begin
        // so far we ONLY know there's a valid connection. See if we can grab some
        // known URL ...
        hHttpSession:= InternetOpen(
          PChar(Application.Title), // this line is the agent string
          INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0
        );
        try
          hReqUrl:= InternetOpenURL(
            hHttpSession,
            PChar('https://www.example.com'{ the URL to check }),
            nil,
            0,
            0,
            0
          );
          Result := hReqUrl <> nil;
          InternetCloseHandle(hReqUrl);
        finally
          InternetCloseHandle(hHttpSession);
        end;
      end
      else
        if (
          InetState and INTERNET_CONNECTION_OFFLINE = INTERNET_CONNECTION_OFFLINE
        ) then
          Result := False; // we know for sure we are offline.
    end;