gethostbyaddr的问题

wpemily 2004-12-03 11:07:03
CString addr=inet_addr("202.115.34.45");
struct hostent FAR * lpHost;

lpHost=gethostbyaddr((char*)&addr,sizeof(addr),AF_INET);
if(lpHost==NULL)
{
MessageBox("error during get name by ip!");
return;
}
1.我把dns客户端服务开了
2.我把netbios服务也启动了

为什么总是得不到主机名? ip是我本机的ip,换成其他人的ip也不行
高手指点
...全文
120 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liulibo11119 2004-12-04
  • 打赏
  • 举报
回复
unsigned long uladdr = inet_addr(addr);
host1 = gethostbyaddr((const char*)&uladdr, 8, AF_INET);
这样试试,inet_addr返回的是 unsigned long 类型
HunterForPig 2004-12-04
  • 打赏
  • 举报
回复
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2),&wsaData);
in_addr ip;
ip.s_addr=inet_addr("127.0.0.1");
struct hostent * lpHost;

lpHost=gethostbyaddr((const char*)&ip,sizeof(ip),AF_INET);
if(lpHost==NULL)
{
printf("error during get name by ip!");
return;
}

你的程序有误,gethostbyaddr第一个参数实际上并不是要char* 类型,而是一个IN_ADDR
wpemily 2004-12-04
  • 打赏
  • 举报
回复
en , 谢谢HunterForPig(留着口水的猪)
没错,就是这个问题
kingzai 2004-12-03
  • 打赏
  • 举报
回复
gethostbyaddr使用时需要dns服务器支持反域名解析
nwcow 2004-12-03
  • 打赏
  • 举报
回复
我想dns客户端服务开不开无所谓,主要是你配置了dns服务器或WINS服务器的ip地址,前者并且还需要你在dns服务器上注册了自己的域名。WINS服务器只对局域网有用

18,356

社区成员

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

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