Esse tipo de projeto já foi feito com Bluetooth, mas o alcance de 30 pés e o consumo extra de bateria me fazem querer executar ping apenas no roteador, em vez dos telefones das pessoas. Eu sei que os roteadores controlam endereços MAC exclusivos para cada dispositivo. Esperava registrar o endereço de cada telefone e fazer com que o PI verifique periodicamente o roteador para atualizar uma página da web dinâmica para exibir quem está em casa.
Quero saber se existe uma maneira razoável de obter essas informações com o PI.
networking
wifi
Codiush
fonte
fonte
Respostas:
É possível. Sugiro que você forneça ao seu script credenciais de login e leia a página que exibe as informações. Então você pode analisar o conteúdo e preencher uma matriz com os dados que deseja. Como essas páginas às vezes contêm mais informações, como datas e horas, você pode criar um registro muito bom.
Aqui está um exemplo rápido de como eu iria proceder;
Na página do seu roteador, você pode encontrar algo como o seguinte;
Portanto, sabemos que todos os dispositivos serão listados dessa maneira. E que todos os endereços MAC terão o mesmo comprimento.
O script pode ser algo assim;
Esse código precisará de ajustes, mas a ideia está aí. É um loop que executa todo o arquivo para encontrar todos os endereços do Mac. até chegar ao final do arquivo.
fonte
Para rastrear endereços Mac exclusivos no seu Raspberry Pi, você precisa de uma ferramenta (em vez de serviço) chamada arpwatch . Eu usei o arpwatch no BSD extensivamente e ele registra todas as solicitações do arp e rarp no syslog.
No Syslog, você pode analisar datas e horários e endereços mac.
O ARP funciona e a tabela existe apenas na rede física (palavra técnica: domínio de colisão). Quando um pacote sai para outra rede, o endereço mac de origem é substituído pelo endereço mac do roteador.
O
arp
comando running no Raspberry Pi listará apenas os endereços mac + IP dos hosts que realizaram transações (comunicação IP) com o host no qual o comando é executado (Raspberry Pi). Ele vai não listar endereços MAC de outros hosts na rede.Outra maneira avançada seria usar o nmap no seu Raspberry Pi para fazer uma descoberta de host. Você pode usar o
nmap -sP
ping em todos os hosts da rede. Ele informará os endereços IP de todos os hosts ativos na sua rede. Em seguida, você pode executar o comando arp para descobrir o mac de quem está ativo.fonte
Acabei de brincar com a versão da linha de comando do fing . Ele faz um trabalho decente em encontrar tudo na rede e cuspir arquivos CSV contendo:
Pelas respostas anteriores, seria necessária alguma manipulação de texto para colocar o conteúdo dos CSVs em uma página da Web e tenha cuidado com o que você está publicando externamente.
Eu usei a versão do Android bastante extensivamente e ele faz um bom trabalho em encontrar tudo na minha rede doméstica (e divertido de brincar com o wifi público).
fonte
O comando
arp
fornecerá uma lista de dispositivos conectados à rede. Você precisará fazer alguma manipulação básica de strings para obter os dados que deseja, mas isso certamente seria mais fácil do que tentar obter as informações você mesmo.Nota de funcionalidade :
Alguns roteadores bloqueiam esse tipo de funcionalidade por padrão, e o seu pode ser configurado como tal. Se não funcionar, procure um pouco na documentação para verificar como permitir.
NOTA DE SEGURANÇA :
Existem algumas implicações muito sérias na segurança de ter um site que mostre quem está atualmente em casa. Pense com muito cuidado na segurança em vigor e se ela é boa o suficiente para os riscos envolvidos.
fonte
É possível, e outras pessoas sugeriram alguns bons métodos. Eu escrevi um script python alguns anos atrás para rastrear essas informações de um roteador netgear e jogá-las no github. Pode ser encontrado aqui . É grosseiro, e, olhando para ele agora, refizê-lo-ia um pouco de maneira diferente, mas funcionou exatamente para o mesmo propósito que você procura por alguns anos até que me mudei.
fonte