You probably can't check them all at once, because you might overload the computer and/or the network. Start a couple of worker threads, and let them check the proxies one at a time. If you search for SynchronisedQueue, you will find a class that I wrote a while back. You can use it to let the threads get one task at a time from a common queue, and to let all the threads return the results to the main thread.
Despite everything, the person most likely to be fooling you next is yourself.