• 主页
  • 系统维护与使用
  • 应用程序开发
  • 内核源代码
  • 驱动程序开发
  • CPU和硬件区
  • UNIX文化
  • Solaris
  • Power Linux

哪位兄弟能给出函数gethostbyname的源代码?

plainchow 2003-07-29 09:18:50
rt
...全文
225 点赞 收藏 9
写回复
9 条回复
teal 2003年08月07日
我也期待中
回复 点赞
plainchow 2003年07月30日
期待中……
回复 点赞
macro_love 2003年07月29日
gethostbyname是从/etc/hosts中查找对应的ip与hostname,所以如果你要实现你说的功能,就要有名称服务器
回复 点赞
plainchow 2003年07月29日
谢谢2楼的,不过那段程序我也会写


正如楼上的说的,其实我真正想要做的是能够在程序中指定使用某个DNS来解析域名

有哪位高手知道否?
回复 点赞
CoolQ 2003年07月29日
自己好好找找Linux的源码包吧,不过这就是一个DNS的查询阿,实在不行,看看相关的RFC或者《TCP/IP》的第一卷:协议,就可以了。
回复 点赞
macro_love 2003年07月29日
#include <netdb.h>
#include <unistd.h>

int main(void)
{
struct hostent *h;
char strhost[255];
char **adds;
size_t len;

if (gethostname(strhost,len)==-1)
{
printf("gethostname error\n");
exit(0);
}
printf("hostname: %s\n",strhost);

if ((h=gethostbyname(strhost))==NULL)
{
printf("gethostbyname error\n");
exit(0);
}
printf("gethostname: %s\n",h->h_name);

adds=h->h_addr_list;
for(;*adds!=NULL;*adds++)
{
printf("IP Address: %s\n", inet_ntoa(*((struct in_addr*)(*adds))));
}
}
回复 点赞
blh 2003年07月29日
看c库源代码不就行了
回复 点赞
plainchow 2003年07月29日


其实就有点类似于nslookup命令,可以指定一个域名服务器来解析一个域名

现在就是想通过程序来实现
回复 点赞
plainchow 2003年07月29日
我写了几行测试程序,
struct hostent *phe = NULL;
struct in_addr *stin = NULL;

phe = gethostbyname("www.990.com");
stin = (struct in_addr *) *(phe->h_addr_list);
cout << " ip is " << inet_ntoa(*stin) << endl;

结果是可以得到IP地址的,当然前提是系统已经配置了DNS

现在我想知道的是怎样在程序中指定一个DNS来解析域名?
回复 点赞
发动态
发帖子
Linux/Unix社区
创建于2007-08-27

7067

社区成员

7.3w+

社区内容

Linux/Unix社区 应用程序开发区
社区公告
暂无公告