Ce genre de projet a déjà été fait avec Bluetooth, mais la portée de 30 pieds et la consommation de batterie supplémentaire me donnent envie de simplement pinguer le routeur au lieu des téléphones des gens. Je sais que les routeurs gardent une trace des adresses MAC uniques pour chaque appareil. J'espérais enregistrer l'adresse de chaque téléphone et demander au PI de vérifier périodiquement le routeur pour mettre à jour une page Web dynamique pour afficher qui est à la maison.
Je veux savoir s'il existe un moyen raisonnable d'extraire ces informations avec le PI.
networking
wifi
Codiush
la source
la source
Réponses:
C'est possible. Je vous suggère de fournir à votre script les informations de connexion et de lire la page qui affiche les informations. Ensuite, vous pouvez analyser son contenu et remplir un tableau avec les données souhaitées. Étant donné que ces pages contiennent parfois plus d'informations telles que les dates et les heures, vous pouvez créer un très bon journal.
Voici un exemple rapide sur la façon dont je procéderais;
Sur la page de votre routeur, vous pouvez trouver quelque chose comme ce qui suit;
Nous savons donc que chaque appareil sera répertorié comme ça. Et que toutes les adresses MAC auront la même longueur.
Le script pourrait être quelque chose comme ça;
Ce code devra être peaufiné mais l'idée est là. C'est une boucle qui exécutera tout le fichier pour trouver toutes les adresses Mac. jusqu'à ce qu'il atteigne la fin du fichier.
la source
Afin de suivre les adresses mac uniques sur votre Raspberry Pi, vous avez besoin d'un outil (plutôt d'un service) appelé arpwatch . J'ai beaucoup utilisé arpwatch sur BSD et il enregistre toutes les requêtes arp et rarp dans syslog.
Depuis Syslog, vous pouvez analyser les dates et heures et les adresses mac.
ARP fonctionne et la table n'existe que sur le réseau physique (mot technique: domaine de collision). Lorsqu'un paquet part pour un autre réseau, l'adresse mac source est remplacée par l'adresse mac du routeur.
L'exécution de la
arp
commande sur Raspberry Pi répertorie uniquement les adresses mac + IP des hôtes qui ont effectué une transaction (communication IP) avec l'hôte sur lequel la commande est exécutée (Raspberry Pi). Il ne répertorie pas les adresses mac des autres hôtes du réseau.Une autre manière avancée serait d'utiliser nmap sur votre Raspberry Pi pour faire une découverte d'hôte. Vous pouvez utiliser
nmap -sP
pour envoyer une requête ping à tous les hôtes du réseau. Il vous indiquera les adresses IP de tous les hôtes actifs de votre réseau. Ensuite, vous pouvez exécuter la commande arp pour découvrir mac qui est actif.la source
Je viens de jouer avec la version en ligne de commande de fing . Il fait un travail décent de tout trouver sur le réseau et de cracher des fichiers CSV contenant:
Selon les réponses précédentes, une certaine manipulation de texte serait nécessaire pour obtenir le contenu des CSV sur une page Web, et faites attention à ce que vous publiez en externe.
J'ai utilisé la version Android assez largement et elle fait un bon travail pour tout trouver sur mon réseau domestique (et c'est amusant de jouer avec sur le wifi public).
la source
La commande
arp
vous donnera une liste des appareils connectés au réseau. Vous aurez besoin de faire quelques manipulations de chaîne de base pour obtenir les données que vous voulez, mais ce serait certainement plus facile que d'essayer d'obtenir les informations vous-même.Note de fonctionnalité :
Certains routeurs bloquent ce type de fonctionnalité par défaut et la vôtre peut être configurée comme telle. Si cela ne fonctionne pas, fouillez un peu sa documentation pour vérifier comment l'autoriser.
NOTE DE SÉCURITÉ :
Le fait d'avoir un site Web qui indique qui est actuellement à la maison a des conséquences très graves sur la sécurité. Veuillez réfléchir très attentivement à la sécurité en place et si elle est suffisante pour les risques encourus.
la source
C'est possible, et d'autres personnes ont suggéré de bonnes méthodes. J'ai écrit un script python il y a quelques années pour filtrer ces informations à partir d'un routeur netgear et les ai lancées sur github. Il peut être trouvé ici . C'est grossier, et en le regardant maintenant, je le referais un peu différemment, mais cela a fonctionné à peu près exactement le même but que vous recherchez pendant quelques années jusqu'à ce que je déménage.
la source