Determining if a client PC has an Internet connection
chrisks at NOSPAM.udel.edu
Sun Sep 19 11:03:13 CEST 2004
Cliff Wells wrote:
> I'm writing an application that needs to know if an Internet connection
> is available. Basically, I want to have something similar to what a lot
> of email clients have, where the app can work either in "online" or
> "offline" mode (it keeps a cache of downloaded info, so it can work
> without a connection if needed).
> The basic problem is this: it downloads info (RSS feeds) from a variety
> of sources. Any one (or more) of these could conceivably fail to
> download, so simply waiting for a timeout isn't sufficient (not easy to
> differentiate between having a bad server and the client not having a
> connection). Further, if it waits (say 30s) for the timeout to occur,
> this is going to be a bit annoying to the user.
> I've considered trying to connect to a stable host (i.e. Google) and if
> that fails then assume the client can't connect to the internet, but
> this seems like a sub-optimal solution.
> Is there any way to reliably determine the state of the client's
> internet connectivity?
As others have mentioned, there's no clean-cut paradigm in the language
that can distinguish between the Internet and your local LAN. Your best
bet is to simple go about your business can try accessing hosts like
normal. When several of your requests timeout, then you can safely
assume the local host to be offline. That's what you see in those
applications when they say you're "offline"; an educated guess. After
all, if you can't reach your target, then you are, for all intents and
More information about the Python-list