| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
jugado1820 Ens

Registrado: 16 Jun 2010Mensajes: 37
|
Publicado: Mar 05 Ago, 2014 11:15 pm Asunto: obtener nombre de dominio a partir de ip |
|
|
Hola:
Necesito saber si hay algun componente en los indy o algo para que de
una ip me devuelva su dominio. Por ejemplo la ip 173.194.41.23 corresponde a la ip de google.es
He estado buscando en los temas y no lo he encontrado. Si en algun tema
sale este problema decidme el enlace.
Muchisimas gracias de antemano
Un saludo |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Vie 08 Ago, 2014 6:33 pm Asunto: |
|
|
Puedes usar el componente TIdDNSResolver:
| Código: | String ip = "173.194.41.23";
IdDNSResolver1->Host = "8.8.8.8"; //IP del servidor de DNS (por ej. el de Google)
IdDNSResolver1->QueryType = TQueryType() << qtPTR; // Indy 10
// En Indy 9 cambiar la línea anterior por:
// IdDNSResolver1->QueryRecords = TQueryType() << qtPTR;
IdDNSResolver1->Resolve(ip);
if (IdDNSResolver1->QueryResult->Count > 0)
ShowMessage(dynamic_cast<TPTRRecord*>(IdDNSResolver1->QueryResult->Items[0])->HostName); |
|
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Jue 14 Ago, 2014 8:07 pm Asunto: |
|
|
También puedes usar winsock:
| Código: |
AnsiString IPToHost(AnsiString IP)
{
WSADATA wsaData;
hostent* He;
unsigned long Addr;
AnsiString Result = IP;
Addr = inet_addr(IP.c_str());
if(Addr == INADDR_NONE) return "ERROR";
if(WSAStartup(MAKEWORD(1, 1), &wsaData) == 0){
He = gethostbyaddr((char*)&Addr, sizeof(Addr), AF_INET);
if(He) Result = He->h_name;
WSACleanup();
}
return Result;
}
|
Saludos. |
|
| Volver arriba |
|
 |
jugado1820 Ens

Registrado: 16 Jun 2010Mensajes: 37
|
Publicado: Jue 18 Sep, 2014 2:02 pm Asunto: Gracias |
|
|
| Muchas gracias!!! me ha funcionado. Os lo agradezco, me estaba volviendo loco. |
|
| Volver arriba |
|
 |
|