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地址转换函数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值