Identificar el servidor web de una URL  

Enviado Por: BackSpace
Web : N.A.
Email: webmaster@esimtz.colombus.cu
Fecha: 27/02/00

Truco accedido 62 veces

 


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.

  • Añade a la forma un TClientSocket, un TMemo, un TEdit y un TButton.
  • En el evento Conect del TClientSocket, pon este codigo:


     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