Initial import.
[ppcheck.git] / ppcheck.py
blob0b88adcc54ddb2e6a84c3024695c7572da94db61
1 #!/usr/bin/env python
3 import socket
4 import sys
5 import threading
6 import time
7 import urllib
9 class ProxyScanner(threading.Thread):
10 def __init__(self, proxy):
11 threading.Thread.__init__(self)
12 self.proxy = proxy
13 def run(self):
14 try:
15 d = urllib.urlencode({ "ppcheck": "ppcheck"}) # Check for POST support.
16 u = urllib.urlopen(checker, d, { "http": "http://" + self.proxy})
17 except KeyboardInterrupt:
18 raise
19 except:
20 return
21 else:
22 result = u.readline().strip()
23 if result == "ok":
24 print self.proxy
26 checker = "http://www.example.net/check.cgi" # Use a hostname as some proxies don't do DNS.
27 numthreads = 100
29 if len(sys.argv) < 2:
30 sys.exit()
32 try:
33 f = open(sys.argv[1])
34 except:
35 print "Couldn't open %s." % sys.argv[1]
36 sys.exit()
38 socket.setdefaulttimeout(20)
40 try:
41 for l in f:
42 while threading.activeCount() == numthreads:
43 time.sleep(2)
44 thread = ProxyScanner(l.strip())
45 thread.start()
46 except KeyboardInterrupt:
47 sys.exit()
49 f.close()