From f91da6403c4fa4a251873046905b8ee2a020c145 Mon Sep 17 00:00:00 2001 From: zargit Date: Mon, 12 Nov 2018 20:42:41 -0500 Subject: [PATCH 1/2] add get_identity function to fetch exit node ip --- torrequest.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/torrequest.py b/torrequest.py index eab1a2d..e0ea289 100644 --- a/torrequest.py +++ b/torrequest.py @@ -4,18 +4,18 @@ from stem.process import launch_tor_with_config import requests - +import json import time class TorRequest(object): - def __init__(self, - proxy_port=9050, + def __init__(self, + proxy_port=9050, ctrl_port=9051, password=None): self.proxy_port = proxy_port self.ctrl_port = ctrl_port - + self._tor_proc = None if not self._tor_process_exists(): self._tor_proc = self._launch_tor() @@ -46,17 +46,22 @@ def _launch_tor(self): take_ownership=True) def close(self): - try: + try: self.session.close() except: pass - try: + try: self.ctrl.close() except: pass if self._tor_proc: self._tor_proc.terminate() + def get_identity(self): + identity = self.get(url="https://httpbin.org/ip", + headers={'Connection':'close'}).text.strip() + return json.loads(identity)['origin'] + def reset_identity_async(self): self.ctrl.signal(stem.Signal.NEWNYM) @@ -75,7 +80,7 @@ def put(self, *args, **kwargs): def patch(self, *args, **kwargs): return self.session.patch(*args, **kwargs) - + def delete(self, *args, **kwargs): return self.session.delete(*args, **kwargs) @@ -84,4 +89,3 @@ def __enter__(self): def __exit__(self, *args): self.close() - From 7c6919c7dc8d29a87bc864dbdcff780ac5960b22 Mon Sep 17 00:00:00 2001 From: zargit Date: Mon, 12 Nov 2018 21:46:51 -0500 Subject: [PATCH 2/2] drop json import --- torrequest.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/torrequest.py b/torrequest.py index e0ea289..5e1ea41 100644 --- a/torrequest.py +++ b/torrequest.py @@ -4,7 +4,7 @@ from stem.process import launch_tor_with_config import requests -import json + import time class TorRequest(object): @@ -59,8 +59,8 @@ def close(self): def get_identity(self): identity = self.get(url="https://httpbin.org/ip", - headers={'Connection':'close'}).text.strip() - return json.loads(identity)['origin'] + headers={'Connection':'close'}).json() + return identity['origin'] def reset_identity_async(self): self.ctrl.signal(stem.Signal.NEWNYM)