Checar a conexão com a Internet em Python
Dica publicada em Python / Internet
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
E agora podemos testar a Internet invocando a função check_internet():
Até a próxima.
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.
Porque não fez com parametro? Aí ficaria como um comando como os demais no linux.
Mas, ainda assim tá muito bom.
___________________________________________________________