Opa, quero compartilhar com vocês esse programinha para medir velocidade da internet usando Python.
primeiramente temos que instalar no nosso ambiente a lib speedtest com o comando:
pip install speedtest-cli
Pronto, isso é tudo que você precisa pra começar a programar seu medidor de velocidade. Mas antes vou explicar do que se trata essa lib.
Speedtest-cli: como medir velocidade da internet usando python
Speedtest-cli é uma biblioteca que lista servidores baseados na distância física, realiza teste contra servidores específicos. Essa ferramenta também pode ser instalado diretamente no Linux, porém, deve ter a versão do Python 2.4 ou superior, para funcionar corretamente e medir velocidade da internet usando python.
Agora vamos importar a biblioteca e criar nosso objeto.
import speedtest
teste = speedtest.Speedtest()
vamos agora criar nossa função para transformar bytes em MB e facilitar a leitura
def bytes_para_mb(bytes):
KB = 1024
MB = KB *1024
return int(bytes/MB)
Utilizaremos agora a função para converter o valor que retornou do teste em MB e armazenar na variável velocidade
velocidade = bytes_para_mb(teste.download())
E por fim, textinho para mostrar na tela a velocidade da internet usando o python.
print("A velocidade da sua internet é ",velocidade,"MBS")
No final nosso código ficou assim
import speedtest
teste = speedtest.Speedtest()
def bytes_para_mb(bytes):
KB = 1024
MB = KB *1024
return int(bytes/MB)
velocidade = bytes_para_mb(teste.download())
print("A velocidade da sua internet é ", velocidade,"MB")
Ao testar nosso código, ele deve demorar um pouco para funcionar. A biblioteca realiza testes utilizando vários servidores, e no final o retorno é esse.
Conclusão
Este é o tipo de código para se treinar no python pois utiliza fundamentos básicos como operações aritméticas, funções, uso de variáveis e de bibliotecas prontas.
Você pode aprender mais sobre o speedtest-cli.
Utilizando a criatividade você pode até criar um robô ou criar um histórico da velocidade da sua internet para depois, se for o caso, reclamar com sua operadora.