![]() |
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 |
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. |
|
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; |
Cita:
Por ejemplo: http://www.dyndns.org/services/dyndns/ Saludos |
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 12:55:38. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi