PDA

Ver la Versión Completa : Averiguar que pagina se está Navegando


FENIXadr
27-02-2011, 01:21:08
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, 15: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, 16:19:58
"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 (http://es.wikipedia.org/wiki/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 (http://es.wikipedia.org/wiki/Enrutador) tambien se lo puede configurar para que no se accedan a algunas páginas en cuestion.
*Tambien podemos hacer uso del Archivo "Host" (http://es.wikipedia.org/wiki/Archivo_hosts) 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, 01: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, 10: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, 02: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/web/tcp_ip_sniffer/tcp_ip_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/viewtopic.php?f=14&t=5165&view=print para bajarlo hay que hacer click en las letras rojas que dicen "<< [ Debe registrarse para ver este enlace ] (http://indetectables.net/foro/ucp.php?mode=register)", 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 ] (http://indetectables.net/foro/ucp.php?mode=register)", y despues vamos a la opción "Identificarse (http://indetectables.net/foro/ucp.php?mode=login)" 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, 17:14:09
Hola:

Este codigo vale solo para algunos navegadores :

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, 01:37:45
SIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII....... razonasistemas (http://www.clubdelphi.com/foros/member.php?u=76803) 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 (http://www.clubdelphi.com/foros/member.php?u=76803).. :D:D:D:D:D:D

rgstuamigo
09-03-2011, 14:46:15
Hola:

Este codigo vale solo para algunos navegadores :

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, 18: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".