gethostbyname和gethostbyaddr的问题

code 2011-11-05 05:52:13
问题(1)
用%s输出,inet_ntoa(*(struct in_addr *)*host->h_addr_list)输出的是IP,但是
*host->h_addr_list) 输出的是域名,这一个host->h_addr_list多少东西啊?怎么又有域名又有IP 的?
问题(2)
使用gethostbyname,得到的hostent指针host,然后我看网上所有的资料里面host->h_aliases都是别名 。而我的返回的第一个是“”,第二个才是别名 而且会返回包含乱码的域名 。比如输入的是www.google.com(所有的网站都是这个效果),第一个是NULL,第二个是乱码和域名,就是域名的最开始有几个乱码。这个乱码是怎么出现的,而且为什么会有第一个是""的现象。
问题(3)
addr.sin_addr.S_un.S_addr = inet_addr(hostname);
printf("%ld\n",addr.sin_addr.S_un.S_addr);
printf("%s\n",hostname);
if (addr.sin_addr.S_un.S_addr == INADDR_NONE)
{
printf("The IPv4 address entered must be a legal address\n");
return 1;
}
else if((host=gethostbyaddr((char *)&addr.sin_addr.S_un.S_addr,4,AF_INET))==NULL)
{
printf("Ping 请求找不到主机 %s。请检查该名称,然后重试。\n",hostname);
exit(1);
}
printf("%s \n",host->h_name);
我如果输入google的IP为什么输出的不是google的域名,而是一个莫名其妙的东西。
输出hx-in -f99.1e100.net,这个hx-in-f99是个什么东西啊?怎么可以返回www.google.com?
...全文
34 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧