Ejemplo n.º 1
0
def main(argv = sys.argv):
 
    parser = argparse.ArgumentParser(description = 'Periodically runs a ZMap scan')
    parser.add_argument('--zmap', '-z', metavar = 'BIN', dest = 'binary',
            type = str, default = ZMap.ZMAP_LOCATION, help = 'zmap location')
    parser.add_argument('--cooldown', '-c', metavar = 'SECONDS',
            dest = 'cooldown', type = int, default = 1)
    parser.add_argument('--nrounds', '-n', metavar = 'N',
            dest = 'nrounds', type = int, default = 30)
    parser.add_argument('--seed', '-s', metavar = 'X',
            dest = 'seed', type = int, default = None)
    parser.add_argument('--output-dir', '-o', metavar = 'DIR',
            dest = 'output_dir', type = str, default = 'scan_results')
    parser.add_argument('--logfile', '-l', metavar = 'FILENAME', dest = 'logfile')
    parser.add_argument('period', metavar = 'PERIOD', type = float)
    parser.add_argument('subnets', metavar = 'SUBNET', nargs = '+', type = str)

    args = parser.parse_args(argv[1:])

    init_logfile(args)
    logger.info('CMDLINE: %s' % ' '.join(argv))

    Utils.ensure_dir_exists(args.output_dir)

    run(args.output_dir, args.subnets, args.seed, args.cooldown,
        args.binary, args.period, args.nrounds)
    
    return 0
Ejemplo n.º 2
0
 def get_output_dir(self, client_info):
     for account in client_info['device_info']['accounts']:
         if account['type'] == 'com.google':
             output_dir = os.path.join(self.server.output_dir, account['name'])
             Utils.ensure_dir_exists(output_dir)
             return output_dir
     return None
Ejemplo n.º 3
0
    def __init__(self, server_address, output_dir, worker):
        self.logger = logging.getLogger('ProbeServer:%s' % server_address[1])
        self.logger.info('init')

        Utils.ensure_dir_exists(output_dir)
        self.output_dir = output_dir
        self.logger.info('using output dir: %s' % self.output_dir)

        self.worker = worker

        SocketServer.TCPServer.__init__(self, server_address, ClientHandler)
Ejemplo n.º 4
0
def save_results(scan_files, output_dir):
    results_dir = os.path.join(output_dir, str(int(time.time())))
    Utils.ensure_dir_exists(results_dir)
    logger.info('saving result to directory %s' % results_dir)

    for i, in_filepath in enumerate(scan_files):
        out_filepath = os.path.join(results_dir, 'ping_%s.gz' % i)
        try:
            Utils.gzip_file_to_file(in_filepath, out_filepath)
        except IOError as e:
            logger.error('failed to write result file %s (%s)' % (out_filepath, e))
            raise e