#>>>>>>>>>>>>PyProxyCh.py START # #Dobavit Web-modul. (PHP) headers, ip, threads # # import urllib2, socket, time, random from optparse import OptionParser parser = OptionParser() parser.add_option("-f", "--file", action="store", dest="proxlist", type="string", help="Proxy-list file. Ex: proxies_29102009.txt") parser.add_option("-s", "--single", action="store_true", dest="prping", help="Works as ping - no proxy.") #commandline args (options, args) = parser.parse_args() #Fetching proxylist prlist = options.proxlist #check timeout socket.setdefaulttimeout(60) #date date_2_string = time.strftime("%d%b%Y %H_%M_%S", time.localtime(time.time())) #Old fileread realization. trashes memory in seconds for large proxy-lists #file = open(options.proxlist) #while True: # line = file.readline() # if not line: break # print line proxyGoodf = open('goods.txt','w') proxyBadf = open('badbadbad.txt', 'w') def is_bad_proxy(pip): try: proxy_handler = urllib2.ProxyHandler({'http': pip}) opener = urllib2.build_opener(proxy_handler) opener.addheaders = [('User-agent', 'Mozilla/5.0')] #custom user-agent urllib2.install_opener(opener) req=urllib2.Request('http://www.ya.ru') # testing url sock=urllib2.urlopen(req) except urllib2.HTTPError, e: print 'Error code: ', e.code return e.code except Exception, detail: print "ERROR:", detail return 1 return 0 def average(values): """Computes the arithmetic mean of a list of numbers. >>> print average([20, 30, 70]) 40.0 """ return sum(values, 0.0) / len(values) def main(): socket.setdefaulttimeout(10) #proxy check timeout #New file read operation for proxyline in open(options.proxlist).xreadlines(): if is_bad_proxy(proxyline): proxyBadf.write("%s %s\t Bad, Bad, Bad Proxy!" % (date_2_string, proxyline)) print "%s \t Bad, Bad, Bad Proxy!" % (proxyline) else: proxyGoodf.write("%s %s \t is OK" % (date_2_string, proxyline)) print "%s \t is OK" % (proxyline) if __name__ == '__main__': if options.proxlist is None and options.prping is None: parser.print_help() exit() if options.prping is True: print "PING fsb.ru (213.180.204.8): 56 data bytes" time.sleep(6) x=0 L = [] while x<4: x=x+1 t = random.uniform(1,5) time.sleep(1) t2=round(t, 3) print "64 bytes from 213.24.76.23: icmp_seq=%s ttl=58 time=%s ms" % (x,t2) L.append(t2) print "4 packets transmitted, 4 packets received, 0% packet loss" print "round-trip min/avg/max/stddev = %s/%s/%s/1.444 ms" % (min(L), average(L), max(L)) exit() print "Starting..." main() proxyGoodf.close() proxyBadf.close() exit() # >>>>>>>>>PyProxyCh.py END