Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-08-2018
MARX MARX is offline
Miembro
 
Registrado: Apr 2016
Posts: 35
Poder: 0
MARX Va por buen camino
Como determinar IP publica en C++ builder

Hola. Necesito su ayuda. Quisiera saber si hay alguna función en builder c++ para determinar la IP publica (Ip que me asigna el proveedor de internet). Desde ya muchas gracias a quienes me den una mano.

Saludos
MARX
Responder Con Cita
  #2  
Antiguo 29-08-2018
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: Nov 2007
Posts: 1.939
Poder: 13
escafandra Va camino a la famaescafandra Va camino a la fama
Cita:
Empezado por MARX Ver Mensaje
Hola. Necesito su ayuda. Quisiera saber si hay alguna función en builder c++ para determinar la IP publica (Ip que me asigna el proveedor de internet). Desde ya muchas gracias a quienes me den una mano.

Saludos
MARX

No la hay pero puedes leerla de una web que te la devuelva como https://dynupdate.no-ip.com/ip.php


Un ejemplo de como hacerlo:


Código PHP:
char PaginaWebIP1[] = "https://dynupdate.no-ip.com/ip.php";
char PaginaWebIP2[] = "http://www.whatismyip.org/";

//---------------------------------------------------------------------------
// Lee Buffer hasta encontrar una estructura de IP.
// Devuelve true si la encuentra y la copia en IP que debe tener espacio
// para 16 caracteres. 
bool ParsingIP(char *IPcharBufferint Size)
{
   
bool Result false;
   
charpt1 strchr(Buffer'.');
   
charpt2 pt1;
   
charpt3 pt1;

   for(
int n=0n<16n++) IP[n]=0;

   for(;
pt1;){
     
pt2 strchr(pt1+1'.');
     if(
pt2pt3 strchr(pt2+1'.');
     if(
pt1 && pt2 && pt3)
     if((int)
pt2-(int)pt1 && (int)pt3-(int)pt2 5)
     
Result = ((int)pt2-(int)pt1 && (int)pt3-(int)pt2 1);
      
Result Result && ((int)pt1-(int)Buffer<Size) &&  ((int)pt2-(int)Buffer<Size) &&  ((int)pt3-(int)Buffer<Size);
     if(
Result){
       for(
pt1--; isdigit(*pt1); pt1--); pt1++;
       
Result = (*pt1!='.');
       if(
Result){
         for(
pt2--; isdigit(*pt2); pt2--); pt2++;
         
Result = (*pt2!='.');
         if(
Result){
           for(
pt3++; isdigit(*pt3); pt3++); pt3--;
           
Result = (*pt3!='.');
           if(
Resultstrncpy(IPpt1, (int)pt3-(int)pt1+1);
         }
       }
     }
     if(
Result) break;
     
pt1 pt2;
   }

   return 
Result;
}
//---------------------------------------------------------------------------
// Lee la IP de cualquier Web que la de y la busca
AnsiString GGetIP(AnsiString URL)
{
  
HINTERNET hNet;
  
HINTERNET hUrl;
  
int LBuf 512;
  
char *Buffer = new char[LBuf];
  
char IP[16];
  
IP[15] = 0;
  
DWORD BytesRead 0;
  
AnsiString Result "";

  if(
InternetAttemptConnect(0) != ERROR_SUCCESS) return Result;

  if(
URL == ""URL PaginaWebIP1;
  
hNet InternetOpen("agent"INTERNET_OPEN_TYPE_PRECONFIGNULLNULL0);
  
SetCursor(LoadCursor(0IDC_WAIT));
  if (
hNet){
    
hUrl InternetOpenUrl(hNetURL.c_str(), NULL0INTERNET_FLAG_RELOAD0);
    if (
hUrl){
      
ZeroMemory(Buffersizeof(Buffer));
      
// Lee la pagina web...
      
bool IRead;
      
int Solapa 15;
      for(
int S=0;;){
        
IRead InternetReadFile(hUrlBuffer SLBuf-1-S, &BytesRead);
        
Solapa;
        if(
IRead && BytesRead==0) break;
        if(
ParsingIP(IPBufferLBuf)) break;
        
Move(Buffer+LBuf-1-SBufferS);
      }
        
// ¿formato correcto?
        
if(inet_addr(IP)!=INADDR_NONE)
          
Result = (AnsiString)IP;
      
InternetCloseHandle(hUrl);
    }
    
InternetCloseHandle(hNet);
  }
  
SetCursor(LoadCursor(0IDC_ARROW));

  
delete Buffer;
  return 
Result;




Saludos.
Responder Con Cita
  #3  
Antiguo 29-08-2018
MARX MARX is offline
Miembro
 
Registrado: Apr 2016
Posts: 35
Poder: 0
MARX Va por buen camino
Gracias escafandra. Lo voy a probar a ver como resulta y te aviso
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Como determinar la ip de un pc JoeyJordison Varios 1 14-01-2007 19:13:06
como determinar el navegador por defecto Velia API de Windows 4 13-11-2005 17:54:10
Como Determinar Monitor a Color ???? AGAG4 Varios 1 27-09-2005 06:07:03
como saver mi ip publica!!! acertij022 Internet 1 17-05-2004 23:09:36
¿Como determinar el tipo de Impresora? jgutti Impresión 4 20-02-2004 02:11:36


La franja horaria es GMT +2. Ahora son las 07:24:18.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi