Ver Mensaje Individual
  #9  
Antiguo 01-09-2005
Carlos Hurtado Carlos Hurtado is offline
Miembro
 
Registrado: dic 2004
Posts: 30
Reputación: 0
Carlos Hurtado Va por buen camino
solucion a IP Real

Hola amigos, estoy muy agradecido de vuestros comentarios. Pero como lo habia planteado en un principio logre configurar una rutina que me da la IP publica o Real.

por si alguien la necesita, ahi va:

En la correspondiente Form coloco un componente Indy TldHTTP y hago esta procedure que me da el nombre del Host, la IP Local y la IP Real.

Lo que esta en rojo es lo importante, el resto esparte de rutinas de archivos .ini para cargar direcciones de correo.


procedure TfrmMain.TabSheet1Show(Sender: TObject);
var
Host, IP, Err: string;
StartPos, Leng: integer;
IPR, HTMLBody, Editor: string;
conectado:boolean;
Fileini : TInifile;
begin
LabeledEdit1.Clear;
LabeledEdit2.Clear;
LabeledEdit3.Clear;
FileIni := TIniFile.Create('CORREO.INI');
Editor:= FileIni.ReadString('options','Editor','');
if Editor = '' then
begin
Editor := 'NOTEPAD.EXE';
FileIni.WriteString('options','Editor',Editor);
end;
CargaCorreos;
if GetIPFromHost(Host, IP, Err) then begin
LabeledEdit1.Text := Host;
LabeledEdit2.Text := IP;

end
else
MessageDlg(Err, mtError, [mbOk], 0);
conectado:= internetgetconnectedstate(0,0);
if conectado then
begin
HTMLBody := IdHTTP1.Get('http://checkip.dyndns.org/');
StartPos := Pos(StartText, HTMLBody) + Length(StartText);
Leng := Pos(EndText, HTMLBody) - StartPos;
IPR := Copy(HTMLBody, StartPos, Leng);
LabeledEdit3.Text := IPR;
end
else
MessageDlg('No esta conectado a Internet', mtError, [mbOk], 0);
end;

Como en esta form tengo otras rutinas (obvio) a continuacion consigno el uses de la form para que extraigan lo que corresponde.

Windows,
Messages,
SysUtils,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
StdCtrls,
ExtCtrls,
ComCtrls,
Grids,
Menus,
ActnList,
uSingleInst,
uConfig,
TrayIcon,
Winsock, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP,
WinInet,
IniFiles;

GRACIAS AMIGOS.
Responder Con Cita