1. 程式人生 > >Linux下由域名程式設計解析ip地址 (段錯誤(吐核))

Linux下由域名程式設計解析ip地址 (段錯誤(吐核))

#include<stdio.h>
#include<sys/socket.h> //提供socket函式及資料結構
#include<netdb.h> //提供設定及獲取域名的函式

int main(int argc,char *argv[])
{
 struct hostent *host;
 char hostname[]="www.163.com";
 char hostname2[]="www.1fg5t.com";
 struct in_addr in;
 struct sockaddr_in addr_in;
 extern int h_errno;


 if((host=gethostbyname(hostname2))!=NULL)
 {
  memcpy(&addr_in.sin_addr.s_addr,host->h_addr,4);//複製地址
  in.s_addr=addr_in.sin_addr.s_addr;
  printf("Domain name :%s\n",hostname2);//輸出主機名
  printf("IP length: %d \n",host->h_length);//輸出地址長度
  printf("Type:  %d\n",host->h_addrtype);//輸出型別
  printf( "IP  :%s\n",inet_ntoa(in));//輸出ip地址
}
else
 {
  printf("Domain name:%s\n",hostname2);
  printf("error: %d\n",h_errno);
  printf("%s\n",hstrerror(h_errno));
 }

}

警告:隱式宣告與內建函式‘memcpy’不相容 [預設啟用]

加標頭檔案#include<string.h>

編譯連線執行後出現  段錯誤(吐核)

加標頭檔案

#include<arpa/inet.h>//提供IP地址轉換函式