def main(): assert get_distribution("stem").version > "1.0.1", "Stem module version must be higher then 1.0.1." parser = ArgumentParser(description="Probe RTTs of Tor circuits.") parser.add_argument("--circuits", type=int, default=10, help="Number of circuits to probe.") parser.add_argument("--samples", type=int, default=10, help="Number of samples taken for each circuit.") parser.add_argument("--time", type=int, default=1800, help="Milliseconds between measures.") parser.add_argument( "--output", type=str, default="/home/juan/src/tor-measure/Measures/temp", help="Prefix for output files." ) parser.add_argument("--hops", type=int, default="2", help="Number of hops.") parser.add_argument("--port", type=int, default="80", help="Listening port of the server.") parser.add_argument("--auth", type=str, default="juan", help="Authenticate password for control Tor") args = parser.parse_args() controller = connect_port() if not controller: sys.stderr.write("ERROR: Couldn't connect to Tor.\n") sys.exit(1) if not controller.is_authenticated(): controller.authenticate(args.auth) try: controller.set_conf("UseMicrodescriptors", "0") controller.set_conf("__DisablePredictedCircuits", "1") controller.set_conf("__LeaveStreamsUnattached", "1") # Close previous circuits for circ in controller.get_circuits(): if not circ.build_flags or "IS_INTERNAL" not in circ.build_flags: controller.close_circuit(circ.id) manager = torController(controller, args.hops, args.circuits, args.samples, args.time, args.output, args.port) manager.join() finally: controller.reset_conf("__DisablePredictedCircuits") controller.reset_conf("__LeaveStreamsUnattached") controller.reset_conf("MaxCircuitDirtiness") controller.close()
def _main(): """ Parse command line arguments, connect to tor and call NavigaTor(). """ # connect_port support in Stem assert get_distribution('stem').version > '1.4.0', \ 'Stem module version must be greater then 1.4.0.' parser = ArgumentParser(description="Probe RTTs of Tor circuits.") parser.add_argument("--circuits", type=int, default=1, help="Number of circuits to build and measure.") parser.add_argument("--rttprobes", type=int, default=1, help="Number of RTT measurements on each circuit.") parser.add_argument("--ttfbprobes", type=int, default=1, help="Number of TTFB measurements on each circuit.") parser.add_argument("--bwprobes", type=int, default=1, help="Number of throughput measurements on each " + "circuit.") parser.add_argument("--probesleep", type=float, default=0, help="Waiting interval between probes in seconds.") parser.add_argument("--threads", type=int, default=1, help="Number of parallel measurement threads.") parser.add_argument("--output", type=str, default='probe_', help="Prefix for output files.") parser.add_argument('--network-protection', dest='network_protection', action='store_true', help="Prevent hammering the " + "Tor network.") parser.add_argument('--no-network-protection', dest='network_protection', action='store_false', help="Do not prevent hammering" + "the Tor network.") parser.add_argument("--port", type=int, default=9051, help="tor control port.") parser.set_defaults(network_protection=True) args = parser.parse_args() controller = connect_port(port=args.port) if not controller: sys.stderr.write("ERROR: Couldn't connect to tor.\n") sys.exit(1) if not controller.is_authenticated(): controller.authenticate() NavigaTor(controller, args.circuits, args.rttprobes, args.ttfbprobes, args.bwprobes, args.probesleep, args.threads, args.output, args.network_protection) controller.close()
def _main(): """ Parse command line arguments, connect to tor, and call findpath(). """ # connect_port support in Stem assert get_distribution('stem').version > '1.4.0', \ 'Stem module version must be greater than 1.4.0.' parser = ArgumentParser(description="Generate Tor paths.") parser.add_argument("--port", type=int, default=9051, help="tor control port.") parser.set_defaults(network_protection=True) args = parser.parse_args() controller = connect_port(port=args.port) if not controller: sys.stderr.write("ERROR: Couldn't connect to tor.\n") sys.exit(1) if not controller.is_authenticated(): controller.authenticate() findpath(controller) controller.close()
print(term.format(line, term.Color.BLUE)) if __name__ == '__main__': tor_process = stem.process.launch_tor_with_config( config = { 'SocksPort':str(9050), 'ControlPort':str(9051), }, init_msg_handler = print_bootstrap_lines, completion_percent = 100, timeout = 3600, take_ownership = True ) controller = connect_port() socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050) socket.socket = socks.socksocket socket.create_connection = create_connection ## ## import the browser class **after** the tor proxy is set ## import mechanize from mechanize import Browser ## ## loop 20 times, changing exit node each time ## ...there may be a better way to do this ## for i in range(0,19):