[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