LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 607|回复: 9

a gethostbyaddr() exmpale ? where is wrong ?

[复制链接]
发表于 2004-4-29 19:39:39 | 显示全部楼层 |阅读模式
  1. #include <unistd.h>
  2. #include <netinet/in.h>
  3. #include <arpa/inet.h>
  4. #include <netdb.h>
  5. #include <stdio.h>
  6. #include <sys/socket.h>
  7. int main(void)
  8. {
  9.         struct hostent *hptr;
  10.         char **phptr;
  11.         if((hptr = gethostbyaddr("218.30.12.178",4,AF_INET))<0) {
  12.                 perror("gethostbyaddr error");
  13.                 exit(1);
  14.         }
  15.         printf("hostname:%s\n", hptr->h_name);
  16.         for(phptr=hptr->h_aliases; *phptr != NULL ; phptr++)
  17.                 printf("hostalias:%s\n", *phptr);
  18.         printf("address type:%d\n", hptr->h_addrtype);
  19.         printf("address length:%d\n", hptr->h_length);
  20.         for(phptr=hptr->h_addr_list;*phptr != NULL ; phptr++)
  21.                 printf("address:%s\n", inet_ntoa(*(struct in_addr *)*phptr));
  22.         exit(0);
  23. }
  24. # ./a.out
  25. Segmentation fault (core dumped)
复制代码

help
:help :help
发表于 2004-4-29 20:13:02 | 显示全部楼层
判断的条件有误,应该是

  1. if((hptr = gethostbyaddr("218.30.12.178",4,AF_INET)) == NULL) {
复制代码
 楼主| 发表于 2004-4-29 20:19:39 | 显示全部楼层
thank !! have a new error. why ?
# ./a.out
gethostbyaddr error: Unknown error: 0
发表于 2004-5-1 10:47:56 | 显示全部楼层
hptr = gethostbyaddr("218.30.12.178",4,AF_INET)
我估计这个总有问题
用参数形式
然后sizeof()来试下吧
发表于 2004-5-1 10:56:18 | 显示全部楼层
最初由 dancingpig 发表
hptr = gethostbyaddr("218.30.12.178",4,AF_INET)
我估计这个总有问题
用参数形式
然后sizeof()来试下吧


怎么用?:help
发表于 2004-5-1 11:01:59 | 显示全部楼层
最初由 devel 发表
怎么用?:help

:mad: u 不四在看unp么
第9章去看看
发表于 2004-5-1 11:03:05 | 显示全部楼层
最初由 dancingpig 发表
:mad: u 不四在看unp么
第9章去看看

看不懂.。。。:cool: :cool: :p

请教哟~~~~:help
发表于 2004-5-1 11:07:24 | 显示全部楼层
dancingpig 救命阿~~~~这次要你教了。。。;O
发表于 2004-5-1 13:20:27 | 显示全部楼层
。。。。。
struct hostent * gethostbyaddr(const char * addr,size_t len,int family)
addr放变量啊,比如是
char * addr;
addr=&argv;
hent=gethostbyaddr(addr,sizeof(addr),AF_INET);

也许这样8,要44
发表于 2004-5-1 14:30:05 | 显示全部楼层
最初由 dancingpig 发表
。。。。。
struct hostent * gethostbyaddr(const char * addr,size_t len,int family)
addr放变量啊,比如是
char * addr;
addr=&argv;
hent=gethostbyaddr(addr,sizeof(addr),AF_INET);

也许这样8,要44


你先试好再告诉我,先谢了哦~~~~~  ^_^  

拜托了。。 :p
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表