Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   averiguar direccion ip publica (https://www.clubdelphi.com/foros/showthread.php?t=16980)

garban 18-12-2004 13:13:48

averiguar direccion ip publica
 
Hola, estoy haciendo un servidor ftp, pero me encuentro con la pega de que no tengo direccion ip fija, entonces queria hacer que el programa me envie un correo cada vez que se cambie la direccion ip publica, pero no soy capaz de encontrar la manera de averiguar desde delphi la direccion ip publica del router .
¿Alguien sabe como averiguar la direccion ip publica desde delphi? o como puede ver el resultado de una de las multiples paginas que me muestran la direccion ip publica en html.

gracias.
Juan

__hector 19-12-2004 02:00:37

Ese tema se ha tratado anteriormente en este mismo foro, y entre las soluciones que se plantearon esta la segunda que mencionas, de hacer un get a un webserver como www.whatismyip.com, y obtener de el la direccion ip del router.

Creo incluso que en su momento se incluyo algo de codigo, pero en caso de que no sea asi, no debe ser muy dificil construir un parser con el que puedas determinar el valor que te devolvio la pagina.

madman 30-12-2004 08:30:39

Saludos!
http://www.clubdelphi.com/foros/show...highlight=real

garban 13-02-2005 23:26:01

Yo acabo de hacer un programa que se limita a averiguar la direccion IP publica leyendo una pagina web 'www.showmyip.com/es' que en el titulo te devuelve tu direccion ip publica y enviarla por correo a una direccion. solo tienes que poner un componente idsmtp y otro idmenssaje de la pestaña indy.
Si quieres puedes guardar esta direccion y comprobar cada 10 minutos si ha cambiado en cuyo caso mandas otro correo. A mi me funciona.

Juan

p.d. la funcion para leer un trozo de html no la he hecho yo, esta tal y como la encontre.



function LeerUnTrozoDeDocumentoHtmDesdeInternet( sUrl: string): string;
type
tbuffer = array[0..100] of char; // Aqui es donde puedes poner mas grande el buffer
pbuffer = ^TBuffer;
var
buffer : pbuffer;
a : cardinal;
ihConnect,
ihSession,
iDocument : HINTERNET;
begin
Result:='NadaDeNada'; // Observa que Length(Result)=10
ihConnect:=InternetOpen('dChat/2.0 (JulianWEB)', LOCAL_INTERNET_ACCESS, '', '', 0);
iDocument:=InternetOpenURL(ihConnect, pChar(sUrl), NIL, 1, INTERNET_FLAG_RELOAD or INTERNET_FLAG_DONT_CACHE or INTERNET_FLAG_RAW_DATA, 0);
if iDocument<>nil then try
New(buffer);
InternetReadFile(iDocument, Buffer, sizeof(TBuffer), a);
Result:=pchar(buffer);
finally
internetCloseHandle(iDocument);
Dispose(buffer);
InternetCloseHandle(ihConnect);
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
with mensaje do begin
Body.Clear;
Body.Add('Acaba de encender el ordenador');
Body.Add(copy(LeerUnTrozoDeDocumentoHtmDesdeInternet 'http://www.showmyip.com/es/'),59,15));
From.Text :='xxx@xxx.com';
Recipients.EMailAddresses := 'yyy@yyy.com';
Subject := 'Dirección IP xxx';
Priority := TidMessagePriority(mpHighest);
end;
with idSMTP1 do begin
AuthenticationType := atLogin;
Userid := 'xxx'; // Nombre del usuario
Password := 'xxx'; // la password
// Configuro el servidor SMTP.
Host := 'smtp.xxx.com';
Port := 25;
Connect;
Send(mensaje); // Envio el mensaje.
Disconnect;
end;
}
end;

Mick 14-02-2005 00:45:15

Cita:

Empezado por garban
Hola, estoy haciendo un servidor ftp, pero me encuentro con la pega de que no tengo direccion ip fija, entonces queria hacer que el programa me envie un correo cada vez que se cambie la direccion ip publica, pero no soy capaz de encontrar la manera de averiguar desde delphi la direccion ip publica del router .
¿Alguien sabe como averiguar la direccion ip publica desde delphi? o como puede ver el resultado de una de las multiples paginas que me muestran la direccion ip publica en html.

gracias.
Juan

Bajo mi opinion creo que la solucion que pretendes utilizar no es la mas adecuada, porque existe una solucion mas sencilla que es la que normalmente se utiliza en estos casos, date de alta en cualquier servicio de DNS dinamico, asi tu equipo tendra un nombre, que es el que utilizaras para conectar a el y no tendras que preocuparte por el cambio de ips, esto ya se gestionara automaticamente.

Por ejemplo:

http://www.dyndns.org/services/dyndns/


Saludos

HanziBlack 22-08-2007 18:53:04

averiguar ip publica
 
bueno señores..estoy conectado a una red lan ..esta se conecta a un proxy que me saca a internet...el hecho es k yo se mi ip ..bueno el hecho es que cuando le hago netstat -a a los que me estan enviando datos por msn en la red local ...el comando me muestra es la ip que tienen localmente no la publica..ahi alguna forma de que con esta direccion ip..(la local y sin estar en ese equipo) hay alguana forma que teniendo la ip y estando en la misma red se pueda averiguar la ip publica:D


La franja horaria es GMT +2. Ahora son las 03:06:49.

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