Já faz algum tempo que penso em uma maneira de monitorar constantemente a
conexão de internet aqui de casa. A intenção seria saber se a rede está
suficientemente estável e principalmente ser alertado quando ela fica
indisponível. Em tempos de home office, admito que essa necessidade até se
tornou mais evidente, pois não foram uma nem duas vezes que fui bruscamente
desconectado durante uma reunião virtual, me permitindo voltar apenas quando
habilitei o roteamento do 4G do celular e reconectei através dele.
O problema que relato poderia muito bem ser resolvido apenas executando o bom e velho "ping". No Windows, disparando o comando contra o DNS da Google pra deixar em constante execução, seria algo assim: "ping 8.8.8.8 -t".
No exemplo acima, enquanto o tempo de resposta for baixo e obtiver uma
variação pequena, pode-se dizer que a qualidade da conexão está boa. Quando
aparecer que o tempo limite do pedido foi esgotado, é sinal de que há
problemas com a conectividade. No caso da rede de destino inacessível, como
apareceu na imagem, foi porque eu desconectei a wi-fi do notebook pra provocar
o erro e mostrar o "esgotado o tempo limite do pedido", que é a mensagem
retornada quando o destino não é alcançado, no caso, o Google. E se não tem
Google, não tem internet. 😂
Entretanto, apesar de haver uma solução bastante simples, fui em busca de algo mais elaborado. Encontrei algumas variações de scripts, parte delas utilizando Shell Script (para Linux) e outras Powershell (também do Windows).
Nessa busca, achei um cara sugerindo duas opções de scripts em Powershell para monitorar a conectividade com a internet. Uma mais simples e outra um pouco mais complexa.