Re: Testing for Internet Connection
may be try to open a connection to 4.2.2.2 at port 53 ? -vks On Wed, Jul 16, 2008 at 12:13 AM, norseman [EMAIL PROTECTED] wrote: Grant Edwards wrote: On 2008-07-15, Alexnb [EMAIL PROTECTED] wrote: What exactly do you think will work? I am not sure what you think I should do? If I use urlopen(http://www.google.com;) and I am not connected, I am not going to get an exception, the program will fail. Bullshit. You get an exception. Here's my program: import urllib2 try: con = urllib2.urlopen(http://www.google.com/;) data = con.read() print data except: print failed If I run it with no internet connection, I get this: $ python testit.py failed If I bring up the internet connection, then I get a bunch of HTML. = Yep -me two Process: copy/paste into afile slide lines left to create proper indent values save python afile I get same as Grant If one does a copy/paste into interactive Python, it does fail. (Lots of indent error messages. After all, it is Python :) Steve [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: Testing for Internet Connection
Alexnb wrote: I am wondering, is there a simple way to test for Internet connection? If not, what is the hard way :p Trying to fetch the homepage from a few major websites (Yahoo, Google, etc.)? If all of them are failing, it's very likely that the connection is down. You can use urllib2 [1] to accomplish that. [1] http://docs.python.org/lib/module-urllib2.html -- http://mail.python.org/mailman/listinfo/python-list
Re: Testing for Internet Connection
Alexnb [EMAIL PROTECTED] writes: I am wondering, is there a simple way to test for Internet connection? If not, what is the hard way :p Refine the question: What do you mean by internet? It isn't a single entity. Do you mean some particular internet host responding on a particular network port? If you can define exactly what you mean by internet connection, the test for it becomes correspondingly easier. -- \ “Why should I care about posterity? What's posterity ever done | `\for me?” —Groucho Marx | _o__) | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list
Re: Testing for Internet Connection
Alex Marandon wrote: Alexnb wrote: I am wondering, is there a simple way to test for Internet connection? If not, what is the hard way :p Trying to fetch the homepage from a few major websites (Yahoo, Google, etc.)? If all of them are failing, it's very likely that the connection is down. You can use urllib2 [1] to accomplish that. [1] http://docs.python.org/lib/module-urllib2.html This seems to work and is rather fast and wastes no bandwidth: == #!/usr/bin/python import socket, struct def check_host(host, port, timeout=1): Check for connectivity to a certain host. # assume we have no route. ret=False # connect to host. try: # create socket. sock=socket.socket() # create timeval structure. timeval=struct.pack(2I, timeout, 0) # set socket timeout options. sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVTIMEO, timeval) sock.setsockopt(socket.SOL_SOCKET, socket.SO_SNDTIMEO, timeval) # connect to host. sock.connect((host, port)) # abort communications. sock.shutdown(SHUT_RDWR) # we have connectivity after all. ret=True except: pass # try to close socket in any case. try: sock.close() except: pass return ret # main - if check_host(www.heise.de, 80): print Horray! else: print We've lost headquarters! == I hope the code is ok, but there is always something you can do better. Comments? :) Cheers, Thomas. -- http://mail.python.org/mailman/listinfo/python-list
Re: Testing for Internet Connection
Alex Marandon [EMAIL PROTECTED] wrote: Alexnb wrote: I am wondering, is there a simple way to test for Internet connection? If not, what is the hard way :p Trying to fetch the homepage from a few major websites (Yahoo, Google, etc.)? If all of them are failing, it's very likely that the connection is down or there is a mandatory proxy... Does it count as internet connection, when only port 80 and port 443 are accessible and those require going through a proxy (very strict firewall policy)? Or everything requires using SOCKS? Just some possible problems I came up with. I don't know how often some- thing like this will happen. Ciao Marc -- http://mail.python.org/mailman/listinfo/python-list
Re: Testing for Internet Connection
Ben Finney-2 wrote: Alexnb [EMAIL PROTECTED] writes: I am wondering, is there a simple way to test for Internet connection? If not, what is the hard way :p Refine the question: What do you mean by internet? It isn't a single entity. Do you mean some particular internet host responding on a particular network port? If you can define exactly what you mean by internet connection, the test for it becomes correspondingly easier. -- \ “Why should I care about posterity? What's posterity ever done | `\for me?” —Groucho Marx | _o__) | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list Well, really I just need to figure out if I am able to connect to one site. That site is dictionary.com. -- View this message in context: http://www.nabble.com/Testing-for-Internet-Connection-tp18460572p18468350.html Sent from the Python - python-list mailing list archive at Nabble.com. -- http://mail.python.org/mailman/listinfo/python-list
Re: Testing for Internet Connection
If you can define exactly what you mean by internet connection, the test for it becomes correspondingly easier. Well, really I just need to figure out if I am able to connect to one site. That site is dictionary.com. Then use urllib2 to try to fetch a page from dictionary.com. If it works, you're connected. If it fails, you're not. The most straight-forward way to find out if you can do X is to try to do X. -- Grant Edwards grante Yow! if it GLISTENS, at gobble it!! visi.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Testing for Internet Connection
Troeger Thomas (Ext) wrote: Alex Marandon wrote: Alexnb wrote: I am wondering, is there a simple way to test for Internet connection? If not, what is the hard way :p Trying to fetch the homepage from a few major websites (Yahoo, Google, etc.)? If all of them are failing, it's very likely that the connection is down. You can use urllib2 [1] to accomplish that. [1] http://docs.python.org/lib/module-urllib2.html This seems to work and is rather fast and wastes no bandwidth: == #!/usr/bin/python import socket, struct def check_host(host, port, timeout=1): Check for connectivity to a certain host. # assume we have no route. ret=False # connect to host. try: # create socket. sock=socket.socket() # create timeval structure. timeval=struct.pack(2I, timeout, 0) # set socket timeout options. sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVTIMEO, timeval) sock.setsockopt(socket.SOL_SOCKET, socket.SO_SNDTIMEO, timeval) # connect to host. sock.connect((host, port)) # abort communications. sock.shutdown(SHUT_RDWR) # we have connectivity after all. ret=True except: pass # try to close socket in any case. try: sock.close() except: pass return ret # main - if check_host(www.heise.de, 80): print Horray! else: print We've lost headquarters! == I hope the code is ok, but there is always something you can do better. Comments? :) Cheers, Thomas. -- http://mail.python.org/mailman/listinfo/python-list Thomas this code did not work on google.com and I also tried it with port 443 -- View this message in context: http://www.nabble.com/Testing-for-Internet-Connection-tp18460572p18468756.html Sent from the Python - python-list mailing list archive at Nabble.com. -- http://mail.python.org/mailman/listinfo/python-list
Re: Testing for Internet Connection
On 2008-07-15, Alexnb [EMAIL PROTECTED] wrote: What exactly do you think will work? I am not sure what you think I should do? If I use urlopen(http://www.google.com;) and I am not connected, I am not going to get an exception, the program will fail. Bullshit. You get an exception. Here's my program: import urllib2 try: con = urllib2.urlopen(http://www.google.com/;) data = con.read() print data except: print failed If I run it with no internet connection, I get this: $ python testit.py failed If I bring up the internet connection, then I get a bunch of HTML. -- Grant Edwards grante Yow! I'm ZIPPY the PINHEAD at and I'm totally committed visi.comto the festive mode. -- http://mail.python.org/mailman/listinfo/python-list
Re: Testing for Internet Connection
Grant Edwards wrote: On 2008-07-15, Alexnb [EMAIL PROTECTED] wrote: What exactly do you think will work? I am not sure what you think I should do? If I use urlopen(http://www.google.com;) and I am not connected, I am not going to get an exception, the program will fail. Bullshit. You get an exception. Here's my program: import urllib2 try: con = urllib2.urlopen(http://www.google.com/;) data = con.read() print data except: print failed If I run it with no internet connection, I get this: $ python testit.py failed If I bring up the internet connection, then I get a bunch of HTML. = Yep -me two Process: copy/paste into afile slide lines left to create proper indent values save python afile I get same as Grant If one does a copy/paste into interactive Python, it does fail. (Lots of indent error messages. After all, it is Python :) Steve [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
Re: Testing for Internet Connection
On 2008-07-15, norseman [EMAIL PROTECTED] wrote: Process: copy/paste into afile slide lines left to create proper indent values save python afile I get same as Grant If one does a copy/paste into interactive Python, it does fail. (Lots of indent error messages. After all, it is Python :) I'm always a bit conflicted about how to post code snippets. IMO, the posting is a lot more readable if the code is indented to offset it from the prose, but it does make more work for anybody who wants to run the example. -- Grant Edwards grante Yow! Did I SELL OUT yet?? at visi.com -- http://mail.python.org/mailman/listinfo/python-list