def get_status(self): try: conn = TorCtl.connect(controlAddr=self.host, controlPort=self.ctrl_port, passphrase=self.password) status = conn.is_live() conn.close() except: pass return status
def get_fast(self): try: ##this doesn't work anymore. It's been compiled into the Tor that you can't do this conn = TorCtl.connect(controlAddr=self.host, controlPort=self.ctrl_port, passphrase=self.password) conn.set_options([("FastFirstHop","0"),("EnforceDistinctSubnet","0"),("UseEntryGuards","0")]) conn.send_signal("RELOAD") print(conn.get_info("circuit-status")) #, "EnforceDistinctSubnet":"0","UseEntryGuards":"0"}) conn.close() except: pass
def process_request(self, request, spider): settings = spider.settings if TimedProxyChange.conn is None: TimedProxyChange.conn = TorCtl.connect(controlAddr=settings.get('TOR_HOST'), controlPort=settings.get('TOR_PORT'), passphrase=settings.get('TOR_PASSW')) TimedProxyChange.last = 0 TimedProxyChange.timelimit = settings.get('TOR_CHANGE_LIMIT') t = time.time() diff = t - TimedProxyChange.last if TimedProxyChange.conn and diff > TimedProxyChange.timelimit: TorCtl.Connection.send_signal(TimedProxyChange.conn, "NEWNYM") TimedProxyChange.last = t log.msg('Proxy changed! New last: %s' % time.strftime("%H:%M:%S"), log.INFO) else: log.msg('Proxy not changed! Time difference is %s seconds' % ("{:.2f}".format(diff)), log.INFO)
def _retry(self, request, reason, spider): settings = spider.settings if RetryChangeProxyMiddleware.conn is None: RetryChangeProxyMiddleware.conn = TorCtl.connect(controlAddr=settings.get('TOR_HOST'), controlPort=settings.get('TOR_PORT'), passphrase=settings.get('TOR_PASSW')) RetryChangeProxyMiddleware.last = 0 RetryChangeProxyMiddleware.timelimit = settings.get('TOR_CHANGE_LIMIT') if isinstance(reason, basestring): #log.msg('Valid retry, reason: ' + reason + ' for URL ' + request.url, log.INFO) t = time.time() diff = t - RetryChangeProxyMiddleware.last if RetryChangeProxyMiddleware.conn and diff > RetryChangeProxyMiddleware.timelimit: TorCtl.Connection.send_signal(RetryChangeProxyMiddleware.conn, "NEWNYM") RetryChangeProxyMiddleware.last = t log.msg('Proxy changed for reason %s. New last: %s' % (reason, time.strftime("%H:%M:%S")), log.INFO) #else: # log.msg('Proxy not changed! Time difference is %s seconds' % ("{:.2f}".format(diff)), log.INFO) return RetryMiddleware._retry(self, request, reason, spider)
class BandwidthListener(TorCtl.PostEventListener): def __init__(self): TorCtl.PostEventListener.__init__(self) def bandwidth_event(self, event): print "tor read %i bytes and wrote %i bytes" % (event.read, event.written) # constructs a listener that prints BW events myListener = BandwidthListener() # initiates a TorCtl connection, returning None if it was unsuccessful conn = TorCtl.connect() if conn: # tells tor to send us BW events conn.set_events(["BW"]) # attaches the listener so it'll receive BW events conn.add_event_listener(myListener) # run until we get a keyboard interrupt try: while True: time.sleep(10) except KeyboardInterrupt: pass
import time import TorCtl class BandwidthListener(TorCtl.PostEventListener): def __init__(self): TorCtl.PostEventListener.__init__(self) def bandwidth_event(self, event): print "tor read %i bytes and wrote %i bytes" % (event.read, event.written) # constructs a listener that prints BW events myListener = BandwidthListener() # initiates a TorCtl connection, returning None if it was unsuccessful conn = TorCtl.connect() if conn: # tells tor to send us BW events conn.set_events(["BW"]) # attaches the listener so it'll receive BW events conn.add_event_listener(myListener) # run until we get a keyboard interrupt try: while True: time.sleep(10) except KeyboardInterrupt: pass
import socks import socket import os import cookielib import mechanize from random import * from time import * import TorCtl conn = TorCtl.connect(controlAddr="127.0.0.1", controlPort=9051, passphrase="123") def create_mac(): f = open("mac",'r') li = f.readlines() for i in range(0,len(li)): li[i] = li[i].strip("\n") shuffle(li) mac_list = li def visit(url): #NewMAC() NewTorIP() #import socks #import socket socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050) socket.socket = socks.socksocket #import urllib2 #import cookielib #import mechanize #def visit(url):
def get_new_circuit(self): conn = TorCtl.connect(controlAddr=self.host, controlPort=self.ctrl_port, passphrase=self.password) conn.send_signal("NEWNYM") conn.close()