[stem/master] Moving "Determine The Exit You’re Using" to the example scripts

atagar at torproject.org atagar at torproject.org
Wed Mar 26 16:59:02 UTC 2014


commit 3299a5ad68c85d6f33f20b7cbeb68ee175877d16
Author: Damian Johnson <atagar at torproject.org>
Date:   Wed Mar 26 09:01:04 2014 -0700

    Moving "Determine The Exit You’re Using" to the example scripts
    
    Moving this example from our client usage tutorials to the example scripts.
    This is a good standalone example, and unrelated to the other tasks in the
    tutorial.
---
 docs/contents.rst                                 |    1 +
 docs/tutorials/double_double_toil_and_trouble.rst |    9 ++-
 docs/tutorials/examples/compare_flags.rst         |   20 +++---
 docs/tutorials/examples/exit_used.rst             |   73 +++++++++++++++++++++
 docs/tutorials/to_russia_with_love.rst            |   72 --------------------
 5 files changed, 92 insertions(+), 83 deletions(-)

diff --git a/docs/contents.rst b/docs/contents.rst
index d9b6159..70eda0f 100644
--- a/docs/contents.rst
+++ b/docs/contents.rst
@@ -13,6 +13,7 @@ Contents
    tutorials/double_double_toil_and_trouble
 
    tutorials/examples/compare_flags
+   tutorials/examples/exit_used
 
    change_log
    download
diff --git a/docs/tutorials/double_double_toil_and_trouble.rst b/docs/tutorials/double_double_toil_and_trouble.rst
index 3dabc1a..093592e 100644
--- a/docs/tutorials/double_double_toil_and_trouble.rst
+++ b/docs/tutorials/double_double_toil_and_trouble.rst
@@ -53,11 +53,18 @@ Applications
 Scripts
 =======
 
+Client Usage
+------------
+
+* `Determine The Exit You're Using <examples/exit_used.html>`_
+
+  Tells you the exit used for each Tor connection.
+
 Descriptors
 -----------
 
 * `Comparing Directory Authority Flags <examples/compare_flags.html>`_
 
   Compares the votes of two directory authorities, in this case moria1 and
-  maatuska, with a special interest in the 'Running' flag.
+  maatuska with a special interest in the 'Running' flag.
 
diff --git a/docs/tutorials/examples/compare_flags.rst b/docs/tutorials/examples/compare_flags.rst
index b0f7fc6..8aceefc 100644
--- a/docs/tutorials/examples/compare_flags.rst
+++ b/docs/tutorials/examples/compare_flags.rst
@@ -6,16 +6,6 @@ maatuska, with a special interest in the 'Running' flag.
 
 ::
 
-  % python compare_flags.py 
-  maatuska has the Running flag but moria1 doesn't: 92FCB6748A40E6088E22FBAB943AB2DD743EA818
-  maatuska has the Running flag but moria1 doesn't: 6871F682350BA931838C0EC1E4A23044DAE06A73
-  maatuska has the Running flag but moria1 doesn't: E2BB13AA2F6960CD93ABE5257A825687F3973C62
-  moria1 has the Running flag but maatuska doesn't: 546C54E2A89D88E0794D04AECBF1AC8AC9DA81DE
-  moria1 has the Running flag but maatuska doesn't: DCAEC3D069DC39AAE43D13C8AF31B5645E05ED61
-  ...
-
-::
-
   from stem.descriptor import DocumentHandler, remote
 
   # Query all authority votes asynchronously.
@@ -58,3 +48,13 @@ maatuska, with a special interest in the 'Running' flag.
     elif 'Running' in maatuska_vote.flags and 'Running' not in moria1_vote.flags:
       print "maatuska has the Running flag but moria1 doesn't: %s" % fingerprint
 
+::
+
+  % python compare_flags.py 
+  maatuska has the Running flag but moria1 doesn't: 92FCB6748A40E6088E22FBAB943AB2DD743EA818
+  maatuska has the Running flag but moria1 doesn't: 6871F682350BA931838C0EC1E4A23044DAE06A73
+  maatuska has the Running flag but moria1 doesn't: E2BB13AA2F6960CD93ABE5257A825687F3973C62
+  moria1 has the Running flag but maatuska doesn't: 546C54E2A89D88E0794D04AECBF1AC8AC9DA81DE
+  moria1 has the Running flag but maatuska doesn't: DCAEC3D069DC39AAE43D13C8AF31B5645E05ED61
+  ...
+
diff --git a/docs/tutorials/examples/exit_used.rst b/docs/tutorials/examples/exit_used.rst
new file mode 100644
index 0000000..2c27f98
--- /dev/null
+++ b/docs/tutorials/examples/exit_used.rst
@@ -0,0 +1,73 @@
+Determine The Exit You're Using
+===============================
+
+Lets say you're using Tor and one day you run into something odd. Maybe a
+misconfigured relay, or maybe one that's being malicious. How can you figure
+out what exit you're using?
+
+Here's a simple script that prints information about the exits used to service
+the requests going through Tor...
+
+::
+
+  import functools
+
+  from stem import StreamStatus
+  from stem.control import EventType, Controller
+
+  def main():
+    print "Tracking requests for tor exits. Press 'enter' to end."
+    print
+
+    with Controller.from_port() as controller:
+      controller.authenticate()
+
+      stream_listener = functools.partial(stream_event, controller)
+      controller.add_event_listener(stream_listener, EventType.STREAM)
+
+      raw_input()  # wait for user to press enter
+
+
+  def stream_event(controller, event):
+    if event.status == StreamStatus.SUCCEEDED:
+      circ = controller.get_circuit(event.circ_id)
+
+      exit_fingerprint = circ.path[-1][0]
+      exit_relay = controller.get_network_status(exit_fingerprint)
+
+      print "Exit relay for our connection to %s" % (event.target)
+      print "  address: %s:%i" % (exit_relay.address, exit_relay.or_port)
+      print "  fingerprint: %s" % exit_relay.fingerprint
+      print "  nickname: %s" % exit_relay.nickname
+      print "  locale: %s" % controller.get_info("ip-to-country/%s" % exit_relay.address, 'unknown')
+      print
+
+
+  if __name__ == '__main__':
+    main()
+
+Now if you make a request over Tor...
+
+::
+
+  % curl --socks4a 127.0.0.1:9050 google.com
+  <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
+  <TITLE>301 Moved</TITLE></HEAD><BODY>
+  <H1>301 Moved</H1>
+  The document has moved
+  <A HREF="http://www.google.com/">here</A>.
+  </BODY></HTML>
+
+... this script will tell you about the exit...
+
+::
+
+  % python exit_used.py
+  Tracking requests for tor exits. Press 'enter' to end.
+
+  Exit relay for our connection to 64.15.112.44:80
+    address: 31.172.30.2:443
+    fingerprint: A59E1E7C7EAEE083D756EE1FF6EC31CA3D8651D7
+    nickname: chaoscomputerclub19
+    locale: unknown
+
diff --git a/docs/tutorials/to_russia_with_love.rst b/docs/tutorials/to_russia_with_love.rst
index e69e828..33c04d3 100644
--- a/docs/tutorials/to_russia_with_love.rst
+++ b/docs/tutorials/to_russia_with_love.rst
@@ -4,7 +4,6 @@ To Russia With Love
 * :ref:`using-socksipy`
 * :ref:`using-pycurl`
 * :ref:`reading-twitter`
-* :ref:`determine-the-exit-you-re-using`
 
 .. _using-socksipy:
 
@@ -173,74 +172,3 @@ Now lets do somthing a little more interesting, and read a Twitter feed over Tor
 
 .. image:: /_static/twitter_output.png
 
-.. _determine-the-exit-you-re-using:
-
-Determine The Exit You're Using
----------------------------------
-
-Finally, lets say you're using Tor and one day you run into something odd. Maybe a misconfigured relay, or maybe one that's being malicious. How can you figure out what exit you're using?
-
-Here's a simple script that prints information about the exits used to service the requests going through Tor...
-
-::
-
-  import functools
-
-  from stem import StreamStatus
-  from stem.control import EventType, Controller
-
-  def main():
-    print "Tracking requests for tor exits. Press 'enter' to end."
-    print
-
-    with Controller.from_port() as controller:
-      controller.authenticate()
-
-      stream_listener = functools.partial(stream_event, controller)
-      controller.add_event_listener(stream_listener, EventType.STREAM)
-
-      raw_input()  # wait for user to press enter
-
-
-  def stream_event(controller, event):
-    if event.status == StreamStatus.SUCCEEDED:
-      circ = controller.get_circuit(event.circ_id)
-
-      exit_fingerprint = circ.path[-1][0]
-      exit_relay = controller.get_network_status(exit_fingerprint)
-
-      print "Exit relay for our connection to %s" % (event.target)
-      print "  address: %s:%i" % (exit_relay.address, exit_relay.or_port)
-      print "  fingerprint: %s" % exit_relay.fingerprint
-      print "  nickname: %s" % exit_relay.nickname
-      print "  locale: %s" % controller.get_info("ip-to-country/%s" % exit_relay.address, 'unknown')
-      print
-
-
-  if __name__ == '__main__':
-    main()
-
-Now if you make a request over Tor...
-
-::
-
-  % curl --socks4a 127.0.0.1:9050 google.com
-  <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
-  <TITLE>301 Moved</TITLE></HEAD><BODY>
-  <H1>301 Moved</H1>
-  The document has moved
-  <A HREF="http://www.google.com/">here</A>.
-  </BODY></HTML>
-
-... this script will tell you about the exit...
-
-::
-
-  % python example.py
-  Tracking requests for tor exits. Press 'enter' to end.
-
-  Exit relay for our connection to 64.15.112.44:80
-    address: 31.172.30.2:443
-    fingerprint: A59E1E7C7EAEE083D756EE1FF6EC31CA3D8651D7
-    nickname: chaoscomputerclub19
-    locale: unknown





More information about the tor-commits mailing list