Re: Testing for Internet Connection

2008-07-17 Thread Venky Shankar
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

2008-07-15 Thread Alex Marandon

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

2008-07-15 Thread Ben Finney
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

2008-07-15 Thread Thomas Troeger

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

2008-07-15 Thread Marc Christiansen
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

2008-07-15 Thread Alexnb



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

2008-07-15 Thread Grant Edwards
 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

2008-07-15 Thread Alexnb



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

2008-07-15 Thread Grant Edwards
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

2008-07-15 Thread norseman


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

2008-07-15 Thread Grant Edwards
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