test.c
上传用户:tjescc
上传日期:2021-02-23
资源大小:419k
文件大小:1k
源码类别:

Telnet服务器

开发平台:

Unix_Linux

  1. #include <includes.h>
  2. #include "hosts_gatherer.h"
  3. /*
  4.  * 
  5.  * This simple program compiles when you link it against
  6.  * the following shared libraries :
  7.  *
  8.  * -lhosts_gatherer
  9.  * -lpcap-nessus
  10.  * -lnessus
  11.  *
  12.  * Its purpose is to demonstrate how to use the lib hosts_gatherer
  13.  *
  14.  */
  15. extern int optind;
  16. void main(int argc, char * argv[])
  17. {
  18.  struct hg_globals * globals;
  19.  char m[1024];
  20.  int e;
  21.  int i;
  22.  int flags = 0;
  23.  
  24.   struct in_addr ip;
  25.  while((i=getopt(argc, argv, "dpsnD"))!=-1)
  26.   switch(i)
  27.   {
  28.   case 'd' : flags |= HG_DNS_AXFR;break;
  29.   case 'p' : flags |= HG_PING;break;
  30.   case 's' : flags |= HG_SUBNET;break;
  31.   case 'n' : flags |= HG_REVLOOKUP;
  32.   case 'D' : flags |= HG_DISTRIBUTE;
  33.   }
  34.  if(!argv[optind])
  35.  { 
  36.   printf("Usage : test -dps hostname/netmaskn-d : DNS axfrn-p : ping hostsn
  37. -s : whole networkn-D: distribute the loadn");
  38.   exit(0);
  39.  }
  40.  if((flags & HG_PING)&&geteuid()){
  41.   printf("the ping flag will be ignored -- you are not rootn");
  42. }
  43.  
  44.  if(hg_test_syntax(argv[optind], flags) < 0 )
  45.  {
  46.   printf("BAD SYNTAXn");
  47.   exit(1);
  48.  }
  49.  globals = hg_init(argv[optind], flags);
  50.  e  = hg_next_host(globals,&ip, m, sizeof(m));
  51.  while(e >= 0)
  52.  {
  53.   printf("%s (%s)n", m, inet_ntoa(ip));
  54.   e = hg_next_host(globals,&ip, m, sizeof(m));
  55.  }
  56.  hg_cleanup(globals);
  57. }