在 UNIX 的 C 程序中,gethostbyname() 可用于获取域的地址,如“localhost”。如何将结果从 gethostbyname() 转换为点分十进制表示法。
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