LinuxSir.cn,穿越时空的Linuxsir!

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

得到网络主机信息的小程序

[复制链接]
发表于 2003-4-12 15:00:30 | 显示全部楼层 |阅读模式
这个程序实际上就是利用gethostbyname()函数得到主机信息,然后打印出来就行了。

  1. #include<unistd.h>
  2. #include<netinet/in.h>
  3. #include<arpa/inet.h>
  4. #include<netdb.h>
  5. #include<stdio.h>

  6. int main( int argc, char *argv[])
  7. {
  8.         struct hostent *hptr;
  9.         //char *hostname;
  10.         char **addr, **names;
  11.        
  12.         if(argc != 2) {
  13.                 printf("usage: a.out hostname\n");
  14.                 exit(1);
  15.         }
  16.        
  17.         //'hostname = argv[1];
  18.        
  19.         if(hptr = gethostbyname(argv[1])) {
  20.                 printf("hostname:%s\n", hptr->h_name);
  21.                
  22.                 names = hptr->h_aliases;
  23.                 while(*names) {
  24.                         printf("hostalias:%s\n", *names);
  25.                         ++names;
  26.                 }
  27.        
  28.                 printf("address type:%d\n", hptr->h_addrtype);
  29.                 printf("address length:%d\n", hptr->h_length);
  30.                
  31.                 addr = hptr->h_addr_list;
  32.                 while(*addr) {
  33.                         printf("address:%s\n", inet_ntoa(*(struct in_addr *)*addr));
  34.                         ++addr;
  35.                 }
  36.         }
  37.         exit(0);
  38. }
复制代码
 楼主| 发表于 2003-4-12 15:02:14 | 显示全部楼层
执行情况:
sh-2.05b$ ./a.out www.sina.com
hostname:taurus.sina.com.cn
hostalias:www.sina.com
hostalias:us.sina.com.cn
hostalias:news.sina.com.cn
hostalias:jupiter.sina.com.cn
address type:2
address length:4
address:61.172.201.234
address:61.172.201.235
address:61.172.201.236
address:61.172.201.221
address:61.172.201.222
address:61.172.201.223
address:61.172.201.224
address:61.172.201.225
address:61.172.201.226
address:61.172.201.231
address:61.172.201.232
address:61.172.201.233
sh-2.05b$
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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