在UNIX中的C程序中,可以使用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'等) –