diff --git a/util/control_port.py b/util/control_port.py index 3fb5858..8d5b921 100644 --- a/util/control_port.py +++ b/util/control_port.py @@ -1,31 +1,42 @@ # Connects to the control port to test that the private network is working -import sys import getpass +import sys + +import stem import stem.connection -import stem.socket -try: - control_socket = stem.socket.ControlPort(port = 9051) -except stem.SocketError as exc: - print 'Unable to connect to port 9051 (%s)' % exc - sys.exit(1) +from stem.control import Controller -try: - stem.connection.authenticate(control_socket) -except stem.connection.IncorrectSocketType: - print 'Please check in your torrc that 9051 is the ControlPort.' - print 'Maybe you configured it to be the ORPort or SocksPort instead?' - sys.exit(1) -except stem.connection.MissingPassword: - controller_password = getpass.getpass('Controller password: ') +if __name__ == '__main__': + try: + controller = Controller.from_port() + except stem.SocketError as exc: + print("Unable to connect to tor on port 9051: %s" % exc) + sys.exit(1) try: - stem.connection.authenticate_password(control_socket, controller_password) - except stem.connection.PasswordAuthFailed: - print 'Unable to authenticate, password is incorrect' - sys.exit(1) -except stem.connection.AuthenticationFailure as exc: - print 'Unable to authenticate: %s' % exc - sys.exit(1) + controller.authenticate() + except stem.connection.MissingPassword: + pw = getpass.getpass("Controller password: ") -print("Successfully authenticated") + try: + controller.authenticate(password = pw) + except stem.connection.PasswordAuthFailed: + print("Unable to authenticate, password is incorrect") + sys.exit(1) + except stem.connection.AuthenticationFailure as exc: + print("Unable to authenticate: %s" % exc) + sys.exit(1) + + print("List of DAs found:") + for desc in controller.get_network_statuses(): + print("found relay %s (%s)" % (desc.nickname, desc.address)) + + print("List of Relays Found:") + for desc in controller.get_microdescriptors(): + print("found relay %s (%s)" % (desc.identifier, desc.or_addresses)) + + + + print("Tor is running version %s" % controller.get_version()) + controller.close()