Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Averiguar que pagina se está Navegando (https://www.clubdelphi.com/foros/showthread.php?t=72572)

FENIXadr 27-02-2011 02:21:08

Averiguar que pagina se está Navegando
 
Hola gente aquí estoy nuevamente preguntando algo.. como lo indica el nombre del hilo es justamente eso lo que quiero hacer.. "Averiguar que pagina se está Navegando", ya se que hay soft por ahi que controlan las paginas por donde uno anda permitiendo o no el acceso .. pero me gustaría hacer una aplicación similar en delphi.. alguien sabe entonces como averiguo la página en la que está algún navegador?

desde ya muchas gracias..

Ñuño Martínez 02-03-2011 16:32:48

Como mucho podrás hacer un "sniffer" y, si detecta HTML, analizarlo. Pero yo de redes, poco, y a bajo nivel, menos.

rgstuamigo 02-03-2011 17:19:58

Cita:

Empezado por FENIXadr (Mensaje 392108)
"Averiguar que pagina se está Navegando", ya se que hay soft por ahi que controlan las paginas por donde uno anda permitiendo o no el acceso .. pero me gustaría hacer una aplicación similar en delphi..
...

Bueno si lo que pretendes es bloquear algunas páginas específica, pues existen muchas formas, aunque yo solo he usado una y no me he metido más a fondo :o, lógicamente, como has mencionado tú, existen mucho software que ya hacen ese trabajo.;)
Entre las alternativas que conosco:
*Si en tu red se ésta usando un servidor proxy pues entonces debes configurar esa Máquina que hace de servidor Proxy para filtrar las páginas de interes.
*Si se ésta usando un router tambien se lo puede configurar para que no se accedan a algunas páginas en cuestion.
*Tambien podemos hacer uso del Archivo "Host" del Sistema Operativo para bloquear el acceso a páginas,(en realidad yo personalmente he utilizado éste método aunque no es 100% efectivo pero vale)
*Etc...:D
Saludos...:)

FENIXadr 03-03-2011 02:31:44

Muchas gracias por las respuestas... con respecto a lo del router y el poxy, está bien.. pero como amante de la programacion, quisiera hacerlo en delphi.... y con respecto a lo del "sniffer"... perdón por mi ignorancia.. pero que es y como se hace??

desde ya muchas gracias..

Ñuño Martínez 03-03-2011 11:20:18

Un "sniffer" (traducido "olfateador") es un programa que hace un seguimiento a todo el tráfico de red. En principio los sniffer se limitan a generar una bitácora con la información (quién, qué, cuándo y dónde), pero con alguna modificación puede hacer más cosas como filtrar (en este caso no se le llama sniffer sino cortafuegos [firewall]).

El "cómo se hace" ya es más complicado. Lo que hay que hacer es interceptar el flujo de red de forma que este "pase a través" del sniffer antes de ser enviado o recibido. Concretamente no puedo decirte el cómo, pero quizá haya algún "hook".

FENIXadr 04-03-2011 03:23:43

Si si ... estuve viendo el tema del "sniffer", y encontré este link que tal vez le sea de utilidad a alguien.... http://www.felix-colibri.com/papers/...p_sniffer.html explica una cuantas cositas..
Además hay un foro que se llama "INDETECTABLES" en donde pude bajar unos códigos fuentes en delphi de un sniffer, este es el link http://indetectables.net/foro/viewto...165&view=print para bajarlo hay que hacer click en las letras rojas que dicen "<< [ Debe registrarse para ver este enlace ]", pero para mi sorpresa cuando me fui a registrar me dijo que ya estaba reguistrado y entré con el mismo nombre de usuario de este foro :confused:... (Acaso "INDETECTABLES" es un anexo de "Club Delphi".. no lo se.:rolleyes:)... bueno entonces como les decia, para bajarlo hay que hacer click en las letras rojas que dicen "<< [ Debe registrarse para ver este enlace ]", y despues vamos a la opción "Identificarse" que esta debajo del logo de "INDETECTABLES.net"..

Volviendo al tema de este hilo... "Averiguar que pagina se está Navegando", no se si esta es la respuesta correcta... pero voy a ver si puedo hacer algo.. si alguien sabe otra forma .. aqui estamos..

muchas gracias,..

razonasistemas 07-03-2011 18:14:09

Esto vale solo para algunos navegadores
 
Hola:

Este codigo vale solo para algunos navegadores :

Código Delphi [-]
uses ddeMan;

procedure TForm1.GetCurrentURL (var URL, Title : string);
 var
   DDEClient : TDDEClientConv;
   s : string;
 begin
   s := '';
   try
     DDEClient := TDDEClientConv.Create(self);
     with DDEClient do
     begin
       if SetLink('IExplore','WWW_GetWindowInfo') then
         s := RequestData('0xFFFFFFFF,sURL,sTitle')
       else
       if SetLink('Netscape','WWW_GetWindowInfo') then
         s := RequestData('0xFFFFFFFF,sURL,sTitle')
       else
       if SetLink('Mosaic','WWW_GetWindowInfo') then
         s := RequestData('0xFFFFFFFF,sURL,sTitle')
       else
       if SetLink('Netscp6','WWW_GetWindowInfo') then
         s := RequestData('0xFFFFFFFF,sURL,sTitle')
       else
       if SetLink('Mozilla','WWW_GetWindowInfo') then
         s := RequestData('0xFFFFFFFF,sURL,sTitle')
       else
       if SetLink('Firefox','WWW_GetWindowInfo') then
         s := RequestData('0xFFFFFFFF,sURL,sTitle');
     end;
     if s <> '' then
     begin
       delete(s,1,1);
       URL := copy(s,1,pos('","',s)-1);
       delete(s,1,pos('","',s)+2);
       Title := copy(s,1,pos('"',s) - 1);
     end;
     exit;
   except
     MessageDlg('URL attempt failed!',mtError,[mbOK],0);
   end;
 end;


procedure TForm1.Button1Click(Sender: TObject);
var
 URL : string;
   Title : string;
 begin
   GetCurrentURL (URL, Title);
   Edit1.Text := URL;
   Edit2.Text := Title;
 end;

Yo lo he intentado, pero no me funciona con el Chrome, pero si con el IE.

FENIXadr 08-03-2011 02:37:45

SIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII....... razonasistemas sos un genioooooo... es justamente lo que necesitaba... muchísimas graciass...

Este hilo se puede dar por terminado...

Una vez más muchisisisisisimas gracias razonasistemas.. :D:D:D:D:D:D

rgstuamigo 09-03-2011 15:46:15

Cita:

Empezado por razonasistemas (Mensaje 392813)
Hola:

Este codigo vale solo para algunos navegadores :

Código Delphi [-]
uses ddeMan;

procedure TForm1.GetCurrentURL (var URL, Title : string);
 var
   DDEClient : TDDEClientConv;
   s : string;
 begin
   s := '';
   try
     DDEClient := TDDEClientConv.Create(self);
     with DDEClient do
     begin
       if SetLink('IExplore','WWW_GetWindowInfo') then
         s := RequestData('0xFFFFFFFF,sURL,sTitle')
       else
       if SetLink('Netscape','WWW_GetWindowInfo') then
         s := RequestData('0xFFFFFFFF,sURL,sTitle')
       else
       if SetLink('Mosaic','WWW_GetWindowInfo') then
         s := RequestData('0xFFFFFFFF,sURL,sTitle')
       else
       if SetLink('Netscp6','WWW_GetWindowInfo') then
         s := RequestData('0xFFFFFFFF,sURL,sTitle')
       else
       if SetLink('Mozilla','WWW_GetWindowInfo') then
         s := RequestData('0xFFFFFFFF,sURL,sTitle')
       else
       if SetLink('Firefox','WWW_GetWindowInfo') then
         s := RequestData('0xFFFFFFFF,sURL,sTitle');
     end;
     if s <> '' then
     begin
       delete(s,1,1);
       URL := copy(s,1,pos('","',s)-1);
       delete(s,1,pos('","',s)+2);
       Title := copy(s,1,pos('"',s) - 1);
     end;
     exit;
   except
     MessageDlg('URL attempt failed!',mtError,[mbOK],0);
   end;
 end;


procedure TForm1.Button1Click(Sender: TObject);
var
 URL : string;
   Title : string;
 begin
   GetCurrentURL (URL, Title);
   Edit1.Text := URL;
   Edit2.Text := Title;
 end;

Yo lo he intentado, pero no me funciona con el Chrome, pero si con el IE.

Muy interresante código amigo razonasistemas... nada más que al ejecutar varias veces el procedimiento "GetCurrentURL" estamos haciendo mal uso de la memoria, ya que el objeto "DDEClient" no se está liberando por lo cual deberiamos agregar una linea más para que tal objeto se destruya y libere su memoria que ocupa...;)
Saludos...:)

FENIXadr 09-03-2011 19:06:41

SI SI... muy buen aporte rgstuamigo... se puede hacer de muchas maneras.... en mi caso creo DDEClient en el evento "OnCreate" del Form y lo destruyo en el evento "OnClose".. solo por hacerlo una vez y no cada vez que se llama a "GetCurrentURL".


La franja horaria es GMT +2. Ahora son las 14:05:28.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi