В программе C в UNIX gethostbyname() может использоваться для получения адреса домена, такого как «localhost». Как преобразовать результат из gethostbyname() в десятичное обозначение с точками.Unix - как получить IP-адрес доменного имени?
struct hostent* pHostInfo;
long nHostAddress;
/* get IP address from name */
pHostInfo=gethostbyname("localhost");
if(!pHostInfo){
printf("Could not resolve host name\n");
return 0;
}
/* copy address into long */
memset(&nHostAddress, 0, sizeof(nHostAddress));
memcpy(&nHostAddress,pHostInfo->h_addr,pHostInfo->h_length);
nHostAddress содержит следующее:
16777243
Как конвертировать результат, так что я могу получить выход как:
127.0.0.1
http://stackoverflow.com/questions/1680365/integer-to-ip-address-c – birryree
Вам просто нужно отформатировать его правильно; каждый байт соответствует одному IP-полю (например, первый байт равен «127» и т. д.) –