La Web del Programador: Comunidad de Programadores
 
    Pregunta:  16404 - ¿COMO SE LA URL QUE HA ESCRITO EN IEXPLORER?
Autor:  Joselito
Hola a todos.

Tengo mi aplicación corriendo en BackGround, y lo que necesito, es averiguar qué URL han escrito en la barra de Navegación del Internet Explorer... ¿Hay alguna forma de saberlo?. ¿Como?. ¿Que tengo que utilizar y cómo se declara?.
Muchas gracias.

  Respuesta:  jorge luis Guzman Abreu
Si enviamos un "GET" al puerto 80 del servidor WEB, nos devolverá algo parecido a esto:

HTTP/1.0 200 OK
Date: Fri, 18.Feb 2000 09:42:29 GMT
Server: Apache/1.3.6 (Unix) <=== Esta es la parte interesante
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
...
...
Codigo HTML
...

La peticion como tal debe ser de la forma:
GET / HTTP/1.0{CR/LF}{CR/LF}{CR/LF}

El ejemplo es el sgte.


procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);
begin
Caption := 'Conectado'; {Connected}
ClientSocket1.Socket.SendText('GET / HTTP/1.0'+#13+#10+#13+#10+#13+#10);
end;

-en el evento Read del ClientSocket:

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(ClientSocket1.Socket.ReceiveText);
end;

-Y en el OnClick del Boton

procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Host := Edit1.Text;
ClientSocket1.Port := 80;
ClientSocket1.Open;
end;

Ejecuta el programa, y en el edit escribe la direccion del servidor que desees chequear ej. 'www.q3.nu' , 'www.altavista.com', etc.
Si lo quieres por direccion IP entonces en vez de ClientSocket1.Host pones ClientSocket1.Address

Para 'www.q3.nu' saldra algo parecido a esto...

HTTP/1.1 200 OK
Date: Thu, 24 Feb 2000 21:00:41 GMT
Server: Apache 1.3.6 Skyport Version Server built May 4 1999 20:10:57