[tor-commits] [ooni-probe/master] Add utility to obtain IP address	of the client based on torproject.org
    art at torproject.org 
    art at torproject.org
       
    Fri Oct  5 14:09:04 UTC 2012
    
    
  
commit 67b024a0361a0585ebc3bf9ed615ef8bf7c793fd
Author: Arturo Filastò <arturo at filasto.net>
Date:   Fri Oct 5 11:05:04 2012 +0000
    Add utility to obtain IP address of the client based on torproject.org
---
 ooni/utils/geodata.py |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/ooni/utils/geodata.py b/ooni/utils/geodata.py
new file mode 100644
index 0000000..3e5202e
--- /dev/null
+++ b/ooni/utils/geodata.py
@@ -0,0 +1,35 @@
+import re
+from twisted.web.client import Agent
+from twisted.internet import reactor, defer, protocol
+
+class BodyReceiver(protocol.Protocol):
+    def __init__(self, finished):
+        self.finished = finished
+        self.data = ""
+
+    def dataReceived(self, bytes):
+        self.data += bytes
+
+    def connectionLost(self, reason):
+        self.finished.callback(self.data)
+
+ at defer.inlineCallbacks
+def myIP():
+    target_site = 'https://check.torproject.org/'
+    regexp = "Your IP address appears to be: <b>(.+?)<\/b>"
+
+    myAgent = Agent(reactor)
+    result = yield myAgent.request('GET', target_site)
+    finished = defer.Deferred()
+    result.deliverBody(BodyReceiver(finished))
+    body = yield finished
+
+    match = re.search(regexp, body)
+    try:
+        myip = match.group(1)
+    except:
+        myip = "unknown"
+
+    return myip
+
+
    
    
More information about the tor-commits
mailing list