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,是什么引发错误,怎么解决错误?

解决方案 »

  1.   

    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]; 
      

  2.   

    ping.sin_addr=*(unsigned       long       *)hp->   h_addr_list[0];   
    你写的这一句一编译就出错了,而且hp->   h_addr_list[0];   与hp-> h_addr;是等价的!各位朋友,我测试了好多遍了,上面的错是真的有的,帮帮我吧
      

  3.   

    www网的IP是不能解释出域名的, gethostbyaddr是没这个功能的
      

  4.   

    那应该用什么函数根据ip解析www网的域名了!