Linux c 通過domain獲取IP地址

在做socket編程的時候,碰到客人需求,IP地址不固定,domain固定,所以需要通過domain來獲取IP地址。
侷限是獲取時間受DNS服務器影響。
<pre name="code" class="cpp">
通過 gethostbyname()函數獲取,具體說明請在終端man <span style="font-family: Arial, Helvetica, sans-serif;">gethostbyname,man 是一個很有用的工具。</span>
上代碼

int getIP(char *msg,char *ip)
 {
	struct hostent *H;
	struct in_addr **addr_list; 
	if ((H = gethostbyname(msg)) == NULL) 
	{  // get the host info
		return -1;
	}
	printf(" name is: %s\n", H->h_name);
	addr_list = (struct in_addr **)H->h_addr_list;
	char IPget[20];
	inet_ntop(AF_INET, &*addr_list[0],IPget,16);
	printf("%s\n",IPget);
	memcpy(ip,IPget,20);
    return 0;
 } 
int main(void)
{
 	char *msg="www.baidu.com";
	char *ip=(char *)malloc(sizeof(char)*20);
	ret=getIP(msg,ip);
	printf("%s",ip);
	free(ip);
  <span style="white-space:pre">	</span>return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章