Checar a conexão com a Internet em Python

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

[ Hits: 3.249 ]

Blog: https://youtube.com/c/cotidianohackeado

 


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

MongoDB - Erro "not authorized ... to execute command" [Resolvido]

Copiando texto para área de transferência em JavaScript

Como copiar arquivos do Windows para o Linux

PyCharm no Debian 10 Buster

Contar e ordenar a quantidade de ocorrências de cada linha em um arquivo

Leitura recomendada

Substituindo caracteres em Zope/Python

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

Servidor de compartilhamento HTTP

Programando páginas da Web com Python

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

  

Comentários
[1] Comentário enviado por mauricio123 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 mauricio123 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