社区
Linux/Unix社区
帖子详情
使用gethostbyname返回NULL
rocklee_0509
2011-10-24 08:51:30
我使用gethostbyname来获得IP地址,但是总是返回NULL,请问怎么回事?
补充,我已经设置了DNS,并且能够成功ping 域名
...全文
576
7
打赏
收藏
使用gethostbyname返回NULL
我使用gethostbyname来获得IP地址,但是总是返回NULL,请问怎么回事? 补充,我已经设置了DNS,并且能够成功ping 域名
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq120848369
2011-10-25
打赏
举报
回复
getaddrinfo去试一下,毕竟你用的是一个已经淘汰的函数了。
rocklee_0509
2011-10-25
打赏
举报
回复
使用hstrerror(h_error)返回的信息是unknown host。但是我能够ping通,我查看了ping命令的源码,里面好像也是用这个函数来做域名向IP转换的
as123456789d
2011-10-25
打赏
举报
回复
用herror();
看一下错误信息,,,
rocklee_0509
2011-10-25
打赏
举报
回复
#include <netdb.h>
#include <sys/socket.h>
#include <stdio.h>
int main(int argc, char **argv)
{
char *ptr, **pptr;
struct hostent *hptr=NULL;
char str[32];
ptr = argv[1];
if((hptr = gethostbyname(ptr))== NULL)
{
printf(" gethostbyname error for host:%s\n", ptr);
perror(NULL);
return 0;
}
printf("official hostname:%s\n",hptr->h_name);
for(pptr = hptr->h_aliases; *pptr != NULL; pptr++)
printf(" alias:%s\n",*pptr);
switch(hptr->h_addrtype)
{
case AF_INET:
case AF_INET6:
pptr=hptr->h_addr_list;
for(; *pptr!=NULL; pptr++)
printf(" address:%s\n",
inet_ntop(hptr->h_addrtype, *pptr, str, sizeof(str)));
printf(" first address: %s\n",
inet_ntop(hptr->h_addrtype, hptr->h_addr, str, sizeof(str)));
break;
default:
printf("unknown address type\n");
break;
}
return 0;
}
代码如上所示,网上搜得一个程序,能够ping通www.baidu.com,但是调用函数确实返回NULL,perror函数则是success
rocklee_0509
2011-10-25
打赏
举报
回复
使用perror返回的信息是success。
louyong0571
2011-10-25
打赏
举报
回复
在调用gethostbyname的时候,如果/etc/resolv.conf没有配置的话会返回NULL,楼主检查下看看
justkk
2011-10-24
打赏
举报
回复
使用perror()看看具体的错误信息是什么..
使用
Get
Host
ByName
获取IP
###
使用
Get
Host
ByName
获取IP地址 #### 一、概述 在C++Builder环境中进行网络编程时,经常需要通过域名来获取对应的IP地址。这通常涉及到Winsock库的应用,特别是`Get
Host
ByName
`函数的
使用
。本文将详细介绍如何...
用get
host
byname
来获得域名信息
如果get
host
byname
函数
返回
NULL
,则输出错误信息并退出。 如果get
host
byname
函数成功
返回
,则我们可以通过
host
ent结构体来获取域名信息。
host
ent结构体包含了域名、别名列表、IP地址列表等信息。我们可以通过h_name...
get
host
byname
用法
1. **包含头文件**:在C程序中,你需要包含`<netdb.h>`和`<arpa/inet.h>`头文件,以
使用
`get
host
byname
`和相关的数据结构。 2. **调用函数**:传递你要查询的域名到`get
host
byname
`。 3. **处理结果**:函数成功时,...
get
host
byname
可执行代码
本文将深入探讨`get
host
byname
`函数的工作原理、功能以及如何
使用
它来获取IP地址列表。 `get
host
byname
`是一个在许多操作系统和编程语言中广泛
使用
的函数,主要用于从域名(例如,www.example.com)获取IP地址。这...
C++ et
host
byname
通过域名得到IP地址 通过网址得到IP地址.txt
- 如果失败,函数
返回
`
NULL
`,表示未找到相应的主机信息或发生错误。 5. **格式化IP地址**:从`h_addr_list`中取出的原始数据通常是一个字节数组,需要转换成人类可读的点分十进制格式。代码中
使用
了`sprintf`函数...
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章