url2lib (windows 7) does not notice when network reconnects (getaddrinfo problem)

News123 news1234 at free.fr
Wed Mar 17 23:47:41 CET 2010


Hi,


I'd like to write a function, that knows when the 'internet' is reachable.

My setup is a windows7 host with a wireless USB modem. The modem might
connect / disconnect any time.

I thought I write a small function just checking whether I can fetch a url.
######### script starts
import time,urllib2

myurl = "http://www.mysite.com" # or "www.google.com" or whatever you like

while True:
    connected = False
    try:
        urllib2.urlopen(myurl)
        connected = True
    except urllib2.URLError as e:
        print "urlerr %s" % e
    print "connected",connected
    time.sleep(1)
########## end of script

if the network is connected when I start the script the first time after
reboot, then  I receive
> connected True
As expected

If the network is disconnected when I start the script the first time
after reboot, then  I receive
> urlerr <urlopen error [Errno 11004] getaddrinfo failed>
> connected False
as expected

Things are getting weired, when my USB wireless modem connects after
I started my script:

It happens, that I just continue to receive:
> urlerr <urlopen error [Errno 11004] getaddrinfo failed>
> connected False

however when I use a windows cmd window and I start
"ping www.mysite.com", then my python script recovers and reports
> connected True

My perhaps false conclusion is, that getaddrinfo() is not retrying to
resolve an IP address, when it failed once.

Is this behaviour known? Can this really be possible?
I can reproduce this issue. not every time, but rather often.

If yes, is there any way to force a new host name lookup under windows?


What else could I be doing wrong?


Thanks a lot in advance for any ideas


N
















	



More information about the Python-list mailing list