Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-04-2013
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 12
pedrolazarus Va por buen camino
Obtener la ip de la red o de mi proveedor

He estado tratando de obtener la ip que me provee el servicio de internet para hacer algunas restricciones pero simplemente no he podido, si alguien me puede dar una ayuda o por lo menos me hace ver un rayo de luz se agradece.
Responder Con Cita
  #2  
Antiguo 13-04-2013
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
El se refiere la IP pública como esa que te arroja en páginas web como show-ip por ejemplo.
Responder Con Cita
  #3  
Antiguo 13-04-2013
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Esta función devuelve el dato que requieres:
Código Delphi [-]
function IP_Publica: string;

  function EsNumerico( S: string ): Boolean;
  begin
    Result := false;
    if ( Length( S ) > 0 ) then
      case S[1] of
        '0'..'9': Result := True;
      end;
  end;
var
  HTMLBody: string;
  i: Integer;
  IdHTTP: TIdHTTP;
begin
  Result := '';

  // ¿Estamos conectados a Internet?
  if WinInet.InternetGetConnectedState( nil, 0 ) then
  begin
    IdHTTP := TIdHTTP.Create( Application );

    try
      HTMLBody := IdHTTP.Get( 'http://checkip.dyndns.org/' );

      for i := 0 to Length( HTMLBody ) - 1 do
      begin
        if EsNumerico( HTMLBody[i] ) or ( HTMLBody[i] = '.' ) then
          Result := Result + HTMLBody[i];
      end;

     finally
       IdHTTP.Free;
     end;
  end;
end;

Hay otras formas de obtenerla pero son mas complejas, para algo rápido esta funciona (hasta que dyndns cancele el servicio jejeje).
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #4  
Antiguo 13-04-2013
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Por cierto esa función también sirve de ejemplo de como leer una página html cualquiera y extraer el texto para analizarlo.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #5  
Antiguo 13-04-2013
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 12
pedrolazarus Va por buen camino
Talking

Si, habia visto una parecida pero solo para linux donde utilizan una página web para obtener la ip y rezar para que no cierren la pagina , lo ideal seria crear una dll que se actualize con una nueva url en el caso de que sea eliminada la pagina(es mi opinion).

Gracias por el codigo, voy a probarlo

Última edición por Casimiro Notevi fecha: 13-04-2013 a las 22:32:34.
Responder Con Cita
  #6  
Antiguo 13-04-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Con linux se puede hacer con un comando por consola:

lynx -dump http://checkip.dyndns.org/ | grep IP | awk {'print $4'}
Responder Con Cita
  #7  
Antiguo 14-04-2013
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Casimiro, al final seguimos dependiendo de http://checkip.dyndns.org/. Al final creo que desgraciadamente siempre dependeremos de una segunda conexión que nos responda desde que ip no es estamos comunicando. Si es para algún trabajo con bases de datos, al menos MySQL si sabe desde donde que ip se conecta cada usuario solo faltaría guardar el dato o hacer lo que requieras con la misma...
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #8  
Antiguo 14-04-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El caso es que debe de poderse consultando el router, porque en él está la IP pública. El mio, al menos, lo muestra.
Desde linux también se puede ejecutar:
Código:
curl config.me
No tengo ni idea de cómo funciona, pero devuelve la IP correctamente.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
error con proveedor OLE DB para win 64 bits Velia Conexión con bases de datos 0 02-11-2011 15:14:01
Proveedor OLE DB 'MSDASQL' Alexander Conexión con bases de datos 3 13-09-2007 19:45:02
Utilizar el driver del proveedor - Oracle ADO.NET SMTZ Conexión con bases de datos 1 30-06-2007 07:35:24
Proveedor De BD .gdb Novata2006 Firebird e Interbase 1 16-05-2006 09:37:04
Proveedor Ole Interbase lafirma Firebird e Interbase 1 20-06-2003 22:18:35


La franja horaria es GMT +2. Ahora son las 16:51:05.


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
Copyright 1996-2007 Club Delphi