[Javanetsim-cvs] IceScan icediscover.h, 1.21, 1.22 icescan.cc, 1.27, 1.28 udpscan.h, 1.9, 1.10
Status: Beta
Brought to you by:
darkkey
From: QweR <qw...@us...> - 2006-12-16 16:06:10
|
Update of /cvsroot/javanetsim/IceScan In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv1643 Modified Files: icediscover.h icescan.cc udpscan.h Log Message: Index: icescan.cc =================================================================== RCS file: /cvsroot/javanetsim/IceScan/icescan.cc,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** icescan.cc 16 Dec 2006 14:44:56 -0000 1.27 --- icescan.cc 16 Dec 2006 16:06:06 -0000 1.28 *************** *** 6,9 **** --- 6,10 ---- #include "icedbs.h" #include "ctarget.h" + #include "icesockets/ice_rand.h" void print_help(char *name){ *************** *** 38,48 **** } ! bool parse_ports(int i, int argc, char *argv[], std::vector <port_range>& ports){ ! if(i+1 < argc){ ! IceRegex re1("((\\d+(-\\d+)?),?)+"); if(! re1.match(argv[i+1]) ){ ! std::cout << "Invalid port range definition format." << std::endl; ! print_help(argv[0]); ! exit(1); }else{ IceRegex re("(\\d+(-\\d+)?),?"); --- 39,54 ---- } ! bool parse_ports(int i, int argc, char *argv[], std::vector <port_range>& ports, bool isexit){ ! if(i+1 < argc){ ! IceRegex re1("$((\\d+(-\\d+)?),?)+^"); if(! re1.match(argv[i+1]) ){ ! if(isexit){ ! std::cout << "Invalid port range definition format." << std::endl; ! print_help(argv[0]); ! exit(1); ! } ! else{ ! return false; ! } }else{ IceRegex re("(\\d+(-\\d+)?),?"); *************** *** 74,77 **** --- 80,84 ---- exit(1); } + return true; } *************** *** 226,230 **** case 'A': par->ack_ping_discovery = true; ! parse_ports(i, argc, argv, par->pa_ports); break; --- 233,237 ---- case 'A': par->ack_ping_discovery = true; ! parse_ports(i, argc, argv, par->pa_ports, false); break; *************** *** 243,252 **** case 'M': par->icmp_mask_ping_discovery = true; ! parse_ports(i, argc, argv, par->pm_ports); break; case 'U': par->udp_ping_discovery = true; ! parse_ports(i, argc, argv, par->pu_ports); break; --- 250,259 ---- case 'M': par->icmp_mask_ping_discovery = true; ! parse_ports(i, argc, argv, par->pm_ports, false); break; case 'U': par->udp_ping_discovery = true; ! parse_ports(i, argc, argv, par->pu_ports, false); break; *************** *** 260,264 **** case 'p': ! parse_ports(i, argc, argv, par->ports); break; --- 267,271 ---- case 'p': ! parse_ports(i, argc, argv, par->ports, true); break; *************** *** 295,298 **** --- 302,307 ---- int main(int argc, char *argv[]){ + init_rand(); + ice_service_name_database isnd("services"); ice_mac_name_database ismd("ieee-oui.txt"); Index: icediscover.h =================================================================== RCS file: /cvsroot/javanetsim/IceScan/icediscover.h,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** icediscover.h 16 Dec 2006 15:24:57 -0000 1.21 --- icediscover.h 16 Dec 2006 16:06:06 -0000 1.22 *************** *** 4,7 **** --- 4,9 ---- #include <signal.h> #include <sys/time.h> + #include <stdlib.h> + #include "icesockets/ice_rand.h" #include "icesockets/csocket.h" #include "icesockets/crawsocket.h" *************** *** 166,182 **** std::map <int, scanning_port> scanning_ports; ! for(int j = 0; j < par->pu_ports.size(); j++){ ! port_range pr = par->pu_ports[j]; ! for(int i = pr.lower_port; i <= pr.upper_port; i++){ ! if(scanning_ports.find(i) == scanning_ports.end()){ ! struct scanning_port sp; ! sp.port_number = i; ! scanning_ports[i] = sp; ! scanning_ports[i].attempt = 0; ! scanning_ports[i].done = false; } } } return udpscan(hostname,scanning_ports,par,out,NULL,false); } --- 168,197 ---- std::map <int, scanning_port> scanning_ports; ! if(par->pu_ports.size() > 0){ ! for(int j = 0; j < par->pu_ports.size(); j++){ ! port_range pr = par->pu_ports[j]; ! for(int i = pr.lower_port; i <= pr.upper_port; i++){ ! if(scanning_ports.find(i) == scanning_ports.end()){ ! struct scanning_port sp; ! sp.port_number = i; ! scanning_ports[i] = sp; ! scanning_ports[i].attempt = 0; ! scanning_ports[i].done = false; ! } } } } + else{ + struct scanning_port sp; + unsigned i; + get_random_bytes(&i, sizeof(i)); + i = ((unsigned)rand() % 35536) + 30000; // return "random" number [30000, 65535] + + sp.port_number = i; + scanning_ports[i] = sp; + scanning_ports[i].attempt = 0; + scanning_ports[i].done = false; + } return udpscan(hostname,scanning_ports,par,out,NULL,false); } Index: udpscan.h =================================================================== RCS file: /cvsroot/javanetsim/IceScan/udpscan.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** udpscan.h 16 Dec 2006 15:24:57 -0000 1.9 --- udpscan.h 16 Dec 2006 16:06:06 -0000 1.10 *************** *** 88,92 **** sudp.sendto(destname.c_str(), (*i).first, zmsg, UDP_SCAN_ZSIZE, 0); iceusleep(50000*repeats); - DBGOUTPUT((*i).first); } --- 88,91 ---- |