Checar a conexão com a Internet em Python

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

[ Hits: 11.864 ]

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

Agendando tarefas no cron com horário aleatório

Capturando screenshots com Shell Script

Resolvendo flash sem som no Firefox

Expressão Regular para CPF

Red Hat Lança o Red Hat Enterprise Linux v.4

Leitura recomendada

Como validar arquivos RSS via linha de comando

Ótimas referências sobre Python em PDF!!!

Programando páginas da Web com Python

Instalando produtos no Plone 4

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

  

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