2012-01-18 18 views
5

Voy a crear un detector de dispositivos móviles usando una computadora de placa única (SBC) que ejecute un sistema operativo basado en Linux. El SBC tendrá un adaptador inalámbrico USB/802.11. El SBC será un servidor DHCP. El dispositivo móvil se unirá a la red inalámbrica (adhoc o infraestructura, no importa) del SBC. Cuando el dispositivo móvil se une a la red, el SBC lo detectará. Verificará la dirección MAC del dispositivo móvil entrante con un conjunto de direcciones aceptadas. Si hay una coincidencia, el SBC ejecutará un comando.Cómo detectar cuando los dispositivos inalámbricos conocidos se unen a mi LAN inalámbrica en Linux

Tengo conocimientos básicos de Linux. No puedo escribir scripts de shell, pero sé C++/Qt. No sé por dónde empezar ¿Conoce utilidades o bibliotecas de línea de comando relevantes para usar en este proyecto?

P.S: Quizás solo necesite una forma de detectar cuándo cambia la lista de clientes dhcp. Junto con el filtrado de direcciones MAC, esto puede funcionar.

+0

Tienes que aprender un poco de script de shell. Si escribe un deamon, debe escribir un script de inicio y de cierre para el init.d. Bueno, no es difícil, pero necesitas saber lo básico :-) – rekire

+0

Puedo crear uno a partir de los scripts de inicio/muerte existentes. Eso no es un problema. – niw3

+0

Debe dar más detalles, por ejemplo, ¿qué tipo de software se ejecutará en ese SBC? Hacer algo como un AP de software requeriría hostapd, que creo que tiene la capacidad de filtrado MAC incorporada. –

Respuesta

0

Puede usar nmap para descubrir su red. Here puedes encontrar algunos ejemplos.

Luego debe analizar su salida. Ej .:

while true; do 
    nmap -v -sT 192.168.0.0/24 | fgrep "YOUR_SEARCHED_IP" && \ 
    echo BINGO "YOUR_SEARCHED_IP" IS IN THE 192.168.0.0/24 NETWORK 
done 

Y nmap tiene una opción -sn saltarse los controles portuarios.

Aún mejor, puede usar ip neighbor show para ver la dirección IP de su red de vecindario.

O puede utilizar un simple análisis de ping, como:

for ip in $(seq 1 254); do 
    ping -c 1 192.168.1.$ip>/dev/null && \ 
    echo “192.168.1.$ip is UP" 
done 

Y se puede combinar con nslookup para ver los nombres de host.

+0

Gracias. Sin embargo, nmap busca puertos abiertos, por lo que el dispositivo móvil debe tener puertos abiertos, de lo contrario no será detectado. – niw3

+0

Bueno, si haces un 'nmap -o $ IP_RANGE' informa algo como' informe de escaneo de Nmap en $ IP' luego en la línea siguiente 'host está activo'. Pero mira mi respuesta actualizada. –

0

nmap prueba la capa IP, pero no es necesario que los dispositivos inalámbricos lo usen.

También puede usar el modo "Monitor" en su interfaz inalámbrica y/o combinarlo con un programa de escucha apropiado, como p. Ej. airodump-ng. Tenga en cuenta que si la red inalámbrica utiliza el aislamiento del cliente, es posible que vea muchos menos clientes de los que realmente participan, y también tenga en cuenta que, al igual que Ethernet correctamente conmutada, no necesariamente verá clientes distantes ubicados en otro segmento.

Cuestiones relacionadas