Cómo revisar si tenemos conexión a internet.

Para no depender de programas externos (tené en cuenta que, por ejemplo, ping seguramente no recibe los mismos parámetros en Linux que en Windows), podés intentar abrir un socket a algún servidor externo y enviar algo.

Si el DNS resuelve podés chequear con socket.gethostbyname('google.com').

import socket
try:
    socket.gethostbyname('google.com')
    c = socket.create_connection(('google.com', 80), 1)
    c.close()
except socket.gaierror:
    print "DNS error"
except socket.error:
    print "Connection error"