url2lib (windows 7) does not notice when network reconnects (getaddrinfo problem)
News123
news1234 at free.fr
Wed Mar 17 18:47:41 EDT 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