读书人

请问gethostbyaddr获取远程IP引发的异

发布时间: 2012-03-21 13:33:15 作者: rapoo

请教gethostbyaddr获取远程IP引发的错误
SOCKADDR_IN ping;
DWORD IP;
IP=inet_addr("220.181.6.6");
hp=gethostbyaddr((LPSTR)&IP,4,AF_INET);
ping.sin_addr.S_un.S_addr=*(unsigned long *)hp->h_addr;

上面代码获取IP出错了,(220.181.6.6为百度IP)
如果把上面的IP=inet_addr("220.181.6.6");改为IP=inet_addr("127.0.0.1");又没错了

如果把程序改为
SOCKADDR_IN ping;
ping.sin_addr.S_un.S_addr=inet_addr("220.181.6.6");

这个也没有错误,程序你正常运行!
请问高手,如果用第一种方法获得IP,是什么引发错误,怎么解决错误?

[解决办法]
SOCKADDR_IN ping;
DWORD IP;
IP=inet_addr( "220.181.6.6 ");
hp=gethostbyaddr((LPSTR)&IP,4,AF_INET);
ping.sin_addr=*(unsigned long *)hp-> h_addr_list[0];

[解决办法]
www网的IP是不能解释出域名的, gethostbyaddr是没这个功能的
[解决办法]
那应该用什么函数根据ip解析www网的域名了!

读书人网 >VC/MFC

热点推荐