Como descobrir o IP local do Raspberry Pi em uma rede externa onde não é possível usar a alocação de endereços IP com o DHCP

Eu adoro fazer projetos com o meu Raspberry Pi, porém ao conecta-lo através do cabo Ethernet à rede local da minha faculdade me deparei com um problema.
Como podia acessa-lo via SSH se eu não sabia qual era seu IP na LAN e não podia acessar o roteador para fazer uma alocação do endereço IP via DHCP ?

A primeira solução que veio a minha mente foi utilizar um Sniffer: um programa que escaneia todos os dispositivos da rede, como o utilitário nmap. Porém essa solução logo se mostrou inviável devido a grande quantidade de dispositivos conectados e a demora para fazer esse scan.

A solução adotada por mim foi fazer um simples script em Python que fosse acionado na inicialização do sistema e me enviasse uma notificação push para o meu celular, informando o IP na LAN.

Bem mais prático, não ?

1º passo: Gerar uma API KEY no Pushbullet

Pushbullet é um (aplicativo/site/extensão do navegador) disponível nas mais as diversas plataformas que lhe permite receber notificações push em todos os seus dispositivos.

Mas porque isso é útil ? Por exemplo, imagine que você encontrou um site muito bacana no seu computador e queira enviar o link para o seu smartphone. Ao invés de enviar o link para um número qualquer do seu WhatsApp (insira qualquer outra gambiarra aqui) você pode usar o Pushbullet e o link já vai aparecer em uma notificação Push no seu celular!

Neste projeto ele será utilizado para permitir que o Raspberry Pi lhe envie uma notificação com o seu endereço IP, assim que for ligado.

Crie a sua conta, pegue a API KEY e siga para o próximo passo.

Depois de criado a conta você precisa gerar uma API KEY.
>>> Gerar API KEY do Pushbullet <<<

2º passo: Salve o script Python e instale os requerimentos necessários

Verifique se o python está instalando com o seguinte comando “python -v“. Caso não esteja é necessário instala-lo de acordo com a sua distribuição.
Depois é necessário instalar a biblioteca pushbullet com o seguinte comando:
pip install pushbullet

Aqui está o código que utilizei. Basta salvar esse script com a extensão .py (de python). Só atente-se a guardar o caminho completo do arquivo e dá a permissão de execução (chmod +x).

3º passo: Inicie o script na inicialização do sistema

Agora só basta configurar o Raspberry Pi para que inicialize esse script na inicialização do sistema. Você pode fazer isso com criando uma tarefa agendada com o crontab usando o seguinte comando:
crontab -e
Escolha o editor de texto da sua preferência (caso pergunte) e adicione a seguinte linha ao final do arquivo:
@reboot sleep 60 && python /path/your_script.py
Logo em seguida salve e feche o arquivo. Reinicie o seu Raspberry Pi e faça o teste! É válido lembrar que é necessário ter internet para funcionar, senão ele não vai poder se conectar ao serviço Pushbullet para lhe enviar o IP.

An Ordered List Post

Nulla sagittis convallis arcu. Sed sed nunc. Curabitur consequat. Quisque metus enim, venenatis fermentum, mollis in, porta et, nibh. Duis vulputate elit in elit. Mauris dictum libero id justo. Fusce in est. Sed nec diam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Quisque semper nibh eget nibh. Sed tempor. Fusce erat.

An Ordered List

  1. Vestibulum in mauris semper tortor interdum ultrices.
  2. Sed vel lorem et justo laoreet bibendum. Donec dictum.
  3. Etiam massa libero, lacinia at, commodo in, tincidunt a, purus.
  4. Praesent volutpat eros quis enim blandit tincidunt.
  5. Aenean eu libero nec lectus ultricies laoreet. Donec rutrum, nisi vel egestas ultrices, ipsum urna sagittis libero, vitae vestibulum dui dolor vel velit.

A Simple Text Post

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed eleifend urna eu sapien. Quisque posuere nunc eu massa. Praesent bibendum lorem non leo. Morbi volutpat, urna eu fermentum rutrum, ligula lacus interdum mauris, ac pulvinar libero pede a enim. Etiam commodo malesuada ante. Donec nec ligula. Curabitur mollis semper diam.

Continue lendo

Quotes Time!

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur quam augue, vehicula quis, tincidunt vel, varius vitae, nulla. Sed convallis orci. Duis libero orci, pretium a, convallis quis, pellentesque a, dolor. Curabitur vitae nisi non dolor vestibulum consequat.

Proin vestibulum. Ut ligula. Nullam sed dolor id odio volutpat pulvinar. Integer a leo. In et eros at neque pretium sagittis. Sed sodales lorem a ipsum suscipit gravida. Ut fringilla placerat arcu. Phasellus imperdiet. Mauris ac justo et turpis pharetra vulputate.

Quote Source

Proin vestibulum. Ut ligula. Nullam sed dolor id odio volutpat pulvinar. Integer a leo. In et eros at neque pretium sagittis. Sed sodales lorem a ipsum suscipit gravida. Ut fringilla placerat arcu. Phasellus imperdiet. Mauris ac justo et turpis pharetra vulputate.

Quote Source