cpp
#include <winsock2.h> //------------------------------------------------------------------------------ // Obtener la IP a partir del Host // Entrada URL en formato Web (google.com) // Devuelve IP en formato 64.233.167.99 //------------------------------------------------------------------------------ AnsiString HostToIP(AnsiString URL) { WSADATA wsaData; hostent* He; in_addr InAddr; AnsiString Result = ""; if(WSAStartup(MAKEWORD(1, 1), &wsaData) == 0){ He = gethostbyname(URL.c_str()); if(He){ Move(*He->h_addr_list, &(InAddr.S_un.S_addr), He->h_length); Result = AnsiString(inet_ntoa(InAddr)); } WSACleanup(); } return Result; }
Y su complementaria, obtiene el Host a partir de una IP:
cpp
#include <winsock2.h> //------------------------------------------------------------------------------ // Obtener el Host a partir de la IP // Entrada IP en formato 64.233.167.99 // Devuelve Host en formato google.com //------------------------------------------------------------------------------ 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; }
Haciendo ping:
cpp
bool P = Ping(HostToIP("www.google.com").c_str(), 3);
Saludos.