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

plainchow 2003-07-29 09:18:50
rt
...全文
408 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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来解析域名?

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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