Checar a conexão com a Internet em Python

Publicado por Fábio Berbert de Paula em 26/10/2020

[ Hits: 11.928 ]

Blog: https://mestrefabio.com

 


Checar a conexão com a Internet em Python



Dica rápida de como checar a conexão com a Internet usando Python. Para a tarefa utilizaremos o módulo requests.

O primeiro passo é instalar o módulo:

pip3 install requests

Sua sintaxe é bem simples. Vamos entrar no console do Python e testar:

python3
>>> import requests
>>> requests.get('https://www.vivaolinux.com.br')
<Response [200]>

Note que o método requests.get retorna o status code da página requisitada, neste caso o "<Response [200]>".

Se você utilizar uma URL inválida, uma exception do tipo exceptions.ConnectionError será gerada. Exemplo:

>>> requests.get('https://www.vivaolinuxAAAAAAAAA.com.br')
...
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='www.vivaolinuxaaaa.com.br', port=443): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fd99807c4e0>: Failed to establish a new connection: [Errno -2] Name or service not known'))

Com as informações que possuímos já podemos criar uma função que retorne True para conexão OK e False para falta de conexão. Utilizaremos o Google como site referência. Existe a possibilidade de falso-positivo caso sua Internet esteja OK e o Google fora do ar, mas acho que podemos conviver com isso né? kkk

import requests

def check_internet():
    ''' checar conexão de internet '''
    url = 'https://www.google.com'
    timeout = 5
    try:
        requests.get(url, timeout=timeout)
        return True
    except exceptions.ConnectionError:
        return False

E agora podemos testar a Internet invocando a função check_internet():

if not check_internet():
    print('Internet fora do ar!')
else:
    print('Internet OK!')

Até a próxima.

Outras dicas deste autor

Unity - Atalhos para captura de tela

Emulador WineX 3.1 para Debian

Como executar seu código-fonte a partir do Vim

Como omitir/filtrar mensagens inúteis no log (rsyslogd)

Como tirar o print de uma região da tela usando o terminal

Leitura recomendada

[RESOLVIDO] 'UnicodeError: ASCII encoding error: ordinal not in range(128) no ScriptLattes

Cliente MSN com webcam para GNU/Linux

Servidor de compartilhamento HTTP

Acessando o Gmail com script em Python

Try Python: Interpretador Python online

  

Comentários
[1] Comentário enviado por maurixnovatrento em 04/11/2020 - 20:38h


Porque não fez com parametro? Aí ficaria como um comando como os demais no linux.

Mas, ainda assim tá muito bom.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[2] Comentário enviado por maurixnovatrento em 04/11/2020 - 20:43h


para explicar melhor daria para fazer para testar a conexão dos sites usando parâmetros de entrada.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts