I've had some issues with that too. My network card was flaky (so I replaced it). But it was hanging on the connection to the laserboy.org server. If your Internet is down, you can unplug your Ethernet cable and your PC will know it has no connection. So it just skips the check.
It should just time out, but it doesn't always do that for some reason.
I got the code from Boost. It's in a try{} block! Exception handling! YUK!
Your command line idea is nice but that would be a totally new application.
James.