Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socket
- import threading
- import random
- import itertools
- import socket
- import time
- import random
- import os
- import urllib2
- global myip
- myip = urllib2.urlopen("http://icanhazip.com/").read()[:-1]
- def isSocks5(ip, port):
- try:
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- sock.settimeout(1)
- sock.connect((ip, port))
- sock.sendall("\x05\x01\x00")
- data = sock.recv(2)
- sock.close()
- if(len(data)<2):
- # Null response
- return False
- if data[0] != "\x05":
- # Not socks5
- return False
- if data[1] != "\x00":
- # Requires authentication
- return False
- return True
- except:
- return False
- def isSocks4(ip, port):
- try:
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.settimeout(1)
- s.connect((ip, port))
- ipaddr = socket.inet_aton(ip)
- packet4 = "\x04\x01" + pack(">H",port) + ipaddr + "\x00"
- socl.sendall(packet4)
- data = sock.recv(8)
- sock.close()
- if(len(data)<2):
- # Null response
- return False
- if data[0] != "\x00":
- # Bad data
- return False
- if data[1] != "\x5A":
- # Server returned an error
- return False
- return True
- except:
- return False
- def http(ip, port):
- global myip
- try:
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.connect((ip, port))
- s.settimeout(1)
- s.send('''GET http://icanhazip.com/ HTTP/1.1
- Host: icanhazip.com
- User-Agent: curl/7.60.0
- Accept: */*
- X-Forwarded-For: ''' + ip + '''
- Proxy-Connection: Keep-Alive
- ''')
- response = s.recv(1024)
- s.close()
- if "200 OK" in response and "Location" not in response:
- if response.split("\n")[-2] == ip or response.split("\n")[-2] == myip:
- return 1
- else:
- return 0
- else:
- return 0
- except socket.error:
- return 0
- except Exception as e:
- print str(e)
- return 0
- def checkProxy(type, ip, port):
- if type == "socks5":
- if isSocks5(ip, port):
- return 5
- if type == "socks4":
- if isSocks4(ip, port):
- return 4
- if type == "http":
- if http(ip, port):
- return 1
- else:
- return 0
- return 0
- def gen_IP():
- not_valid = [10,127,169,172,192]
- first = random.randrange(1,256)
- while first in not_valid:
- first = random.randrange(1,256)
- ip = ".".join([str(first),str(random.randrange(1,256)),
- str(random.randrange(1,256)),str(random.randrange(1,256))])
- return ip
- def gen_IP_block():
- not_valid = [10,127,169,172,192]
- first = 39
- while first in not_valid:
- first = random.randrange(1,256)
- ip = ".".join([str(first),str(random.randrange(1,256)),
- str(random.randrange(1,256))])
- return ip+".0-255"
- def ip_range(input_string):
- octets = input_string.split('.')
- chunks = [map(int, octet.split('-')) for octet in octets]
- ranges = [range(c[0], c[1] + 1) if len(c) == 2 else c for c in chunks]
- for address in itertools.product(*ranges):
- yield '.'.join(map(str, address))
- def isOpen(IP, Port):
- try:
- s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.settimeout(0.19)
- result = s.connect_ex((IP, Port))
- if result == 0:
- s.close()
- return True
- s.close()
- except:
- return False
- def HaxThread(fh):
- while 1:
- try:
- IP = gen_IP()
- for Port in [80,1080,8080,3127,3128,3129]:
- if isOpen(IP, Port):
- proxy = IP + ":" + str(Port)
- working = False
- if checkProxy('socks5', IP, Port) == 5:
- print "SOCKS5 " + proxy
- working = True
- if checkProxy('socks4', IP, Port) == 4:
- print "SOCKS4 " + proxy
- working = True
- if checkProxy('http', IP, Port) == 1:
- print "HTTP " + proxy
- working = True
- if working:
- fh.write(proxy + "\n")
- fh.flush()
- except Exception as e:
- print str(e)
- pass
- fh = open("sockss.txt","a")
- threads = 1024
- threadcount = 0
- for i in xrange(0,threads):
- try:
- threading.Thread(target=HaxThread, args=(fh,)).start()
- threadcount += 1
- except:
- pass
- print "Scanned " + str(threadcount) + " scanner threads! Press enter three times to stop."
- raw_input()
- os.kill(os.getpid(), 9)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement