Exemplo n.º 1
0
	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
Exemplo n.º 2
0
	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
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0

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
Exemplo n.º 6
0
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

Exemplo n.º 7
0
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):
Exemplo n.º 8
0
	def get_new_circuit(self):
		conn = TorCtl.connect(controlAddr=self.host, controlPort=self.ctrl_port, passphrase=self.password)
		conn.send_signal("NEWNYM")
		conn.close()