www.pudn.com > qscan.zip > qscan.c


 
/* http://www.cotse.com  Fear the swimming Elephant! */ 
 
/* 
   Queso-Scanner  v 0.5 
    
   by vacuum@technotronic.com 
   10.17.98 
   Queso OS Scan for 255 machines 
   This requires the queso binary from El Apostols 
   If you dont know what that is, you dont need this code. 
   Props to horizon, HoGs HeaD, elr0nd 
*/ 
 
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
     
FILE *stream; 
 
#define DEBUG 1 
 
void pingz0r(int first, int second, int third, int pnum, int start, int end) { 
int counter,flag; 
FILE *stream; 
char tempstring[2048]; 
char parse[2048]; 
 
for (counter=start; counter /dev/null",first, 
                     second, third, counter, pnum); 
 stream=popen(tempstring,"r"); 
 while (fgets(parse,sizeof(parse),stream)!=NULL) 
 { 
  if (DEBUG) printf("Results:%s",parse); 
  if (strstr(parse,"DUP")) 
  { 
    flag=1; 
    fclose(stream); 
    break; 
  } 
 } 
 if (flag==1) 
 stream=fopen("os-versions.txt", "a");  
 fprintf(stream, "%d.%d.%d.%d:%d\n",first,second,third,counter,pnum); 
 fclose( stream); 
} 
} 
 
main(int argc, char *argv[]) { 
 
 char *curr_ip, *del, *port; 
 int first, second, third, pnum; 
  
if (argc!=3) 
 { 
  printf("\nusage : %s  \n\n",argv[0]); 
  exit(0); 
 } 
 
 curr_ip=argv[1]; 
   del=(char *)strtok(curr_ip, "."); 
   first=atoi(del); 
   del=(char *)strtok(NULL, "."); 
   second=atoi(del); 
   del=(char *)strtok(NULL, "."); 
   third=atoi(del); 
 
  port=argv[2]; 
   del=(char *)strtok(port, ""); 
   pnum=atoi(del); 
 
 
if (first==127) 
 { 
 printf("%d is a localhost. You have no clue or are trying to break this program\n",first); 
 exit(0); 
 } 
if (first>254  || first <0) 
 { 
 printf("First octet is: %d. It must be between <1-254>\n",first); 
 exit(0); 
 } 
if (second>254 || second<0) 
 { 
 printf("Second octet is: %d. It must be <1-254>\n",second); 
 exit(0); 
 }  
if (pnum>32767 || pnum<1) 
 { 
 printf("The port is: %d. It must be <1-32767>\n",pnum); 
 exit(0); 
 }  
 
printf("Determining OS Version for given ip range.\n"); 
printf("Results output to os-versions.txt\n"); 
 
	pingz0r(first,second,third,pnum,0,255); 
}