Este tipo de proyecto se ha hecho con Bluetooth antes, pero el alcance de 30 pies y el consumo de batería adicional me dan ganas de hacer ping al enrutador en lugar de los teléfonos de las personas. Sé que los enrutadores realizan un seguimiento de las direcciones MAC únicas para cada dispositivo. Esperaba registrar la dirección de cada teléfono y hacer que el PI verifique periódicamente el enrutador para actualizar una página web dinámica para mostrar quién está en casa.
Quiero saber si hay una manera razonable de obtener esta información con el PI.
networking
wifi
Codiush
fuente
fuente
Respuestas:
Es posible. Le sugiero que proporcione su script con credenciales de inicio de sesión y lea la página que muestra la información. Luego, podría analizar su contenido y llenar una matriz con los datos que desee. Dado que estas páginas a veces contienen más información, como fechas y horas, puede crear un registro realmente agradable.
Aquí hay un ejemplo rápido de cómo procedería;
En la página de su enrutador puede encontrar algo como lo siguiente;
Entonces sabemos bien que cada dispositivo aparecerá así. Y que todas las direcciones MAC tendrán la misma longitud.
El guión podría ser algo así;
Este código necesitará ajustes, pero la idea está ahí. Es un bucle que ejecutará todo el archivo para encontrar todas las direcciones de Mac. hasta que llegue al final del archivo.
fuente
Para rastrear direcciones mac únicas en su Raspberry Pi, necesita una herramienta (en lugar de servicio) llamada arpwatch . He usado arpwatch en BSD ampliamente y registra todas las solicitudes de arp y rarp en syslog.
Desde Syslog puede analizar fechas y horas y direcciones mac.
ARP funciona y la tabla existe solo en la red física (palabra técnica: dominio de colisión). Cuando un paquete sale para otra red, la dirección mac de origen se reemplaza por la dirección mac del enrutador.
La ejecución del
arp
comando en Raspberry Pi solo enumerará las direcciones mac + IP de los hosts que han realizado transacciones (comunicación IP) con el host en el que se ejecuta el comando (Raspberry Pi). Será no listar las direcciones MAC de los otros hosts de la red.Otra forma avanzada sería usar nmap en su Raspberry Pi para hacer un descubrimiento de host. Puede usar
nmap -sP
para hacer ping a todos los hosts en la red. Le indicará las direcciones IP de todos los hosts activos en su red. Luego puede ejecutar el comando arp para averiguar quién está activo.fuente
Acabo de jugar con la versión de línea de comando de fing . Hace un trabajo decente al encontrar todo en la red y escupir archivos CSV que contienen:
Según las respuestas anteriores, sería necesaria alguna manipulación de texto para obtener el contenido de los CSV en una página web y tener cuidado con lo que está publicando externamente.
He usado la versión de Android de forma bastante extensa y hace un buen trabajo al encontrar todo en mi red doméstica (y es un poco divertido jugar con wifi público).
fuente
El comando
arp
le dará una lista de dispositivos conectados a la red. Tendrá que hacer una manipulación básica de la cadena para obtener los datos que desea, pero sin duda sería más fácil que tratar de obtener la información usted mismo.Nota de funcionalidad :
Algunos enrutadores bloquean este tipo de funcionalidad de manera predeterminada, y el suyo puede configurarse como tal. Si no funciona, busque un poco en su documentación para verificar cómo permitirlo.
NOTA DE SEGURIDAD :
Hay algunas implicaciones de seguridad muy serias de tener un sitio web que muestre quién está actualmente en casa. Piense detenidamente sobre la seguridad existente y si es lo suficientemente buena para los riesgos involucrados.
fuente
Es posible hacerlo, y otras personas han sugerido algunos buenos métodos. Hace unos años escribí una secuencia de comandos de Python para eliminar esta información de un enrutador netgear y la arrojé a github. Se puede encontrar aquí . Es tosco, y al mirarlo ahora lo volvería a hacer de manera algo diferente, pero funcionó casi exactamente con el mismo propósito que buscó durante un par de años hasta que me mudé.
fuente