2012-01-18 16 views
5

Realizzerò il rilevatore di dispositivi mobili utilizzando un singolo computer di bordo (SBC) che esegue un sistema operativo basato su Linux. L'SBC avrà un adattatore wireless USB/802.11. L'SBC sarà un server DHCP. Il dispositivo mobile si unirà alla rete wireless (ad hoc o infrastruttura, non importa) dell'SBC. Quando il dispositivo mobile si collega alla rete, SBC lo rileva. Verificherà l'indirizzo MAC del dispositivo mobile in arrivo con una serie di indirizzi accettati. Se c'è una corrispondenza, l'SBC eseguirà un comando.Come rilevare quando dispositivi wireless noti si aggiungono alla mia LAN wireless su Linux

Ho una conoscenza di base di Linux. Non riesco a scrivere script di shell ma conosco C++/Qt. Non so da dove iniziare. Conoscete utilità o librerie da riga di comando rilevanti da utilizzare in questo progetto?

P.S: Forse ho solo bisogno di un modo per rilevare quando cambia l'elenco dei client dhcp. Insieme al filtro degli indirizzi mac, questo potrebbe funzionare.

+0

Devi imparare un po 'di script di shell. Se scrivi un demone devi scrivere uno script di inizio e fine per l'init.d. Beh, non è difficile ma devi conoscere le basi :-) – rekire

+0

Posso crearne uno dagli script di avvio/uccisione esistenti. Non è un problema. – niw3

+0

Dovresti fornire ulteriori dettagli, ad esempio, che tipo di software verrà eseguito su tale SBC? Fare qualcosa come un AP software richiederebbe hostapd, che credo abbia incorporato la funzionalità di filtro MAC. –

risposta

0

È possibile utilizzare nmap per scoprire la rete. Here puoi trovare alcuni esempi.

Quindi è necessario analizzare l'output. Es .:

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 

E nmap ha un'opzione -sn di saltare i controlli portuali.

Ancora meglio è possibile utilizzare ip neighbor show per visualizzare l'indirizzo IP delle reti di vicinato.

In alternativa è possibile utilizzare un semplice test ping, come:

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

E si può combinare con nslookup per vedere i nomi host.

+0

Grazie. Tuttavia, nmap cerca le porte aperte, quindi il dispositivo mobile deve avere porte aperte altrimenti non verrà rilevato. – niw3

+0

Bene se si fa un 'nmap -o $ IP_RANGE' riporta qualcosa come' Nmap scan report su $ IP', quindi nella riga successiva 'host is up'. Ma vedi la mia risposta aggiornata. –

0

nmap verifica il livello IP, ma i dispositivi wireless non sono obbligati a utilizzarlo.

È anche possibile utilizzare la modalità "Monitor" sull'interfaccia wireless e/o combinata con un programma di ascolto appropriato come ad es. airodump-ng. Si noti che se la rete wireless utilizza l'isolamento del client, è possibile vedere meno client di quanti ne partecipino effettivamente, e si noti inoltre che, proprio come Ethernet correttamente commutata, non sarà necessariamente possibile vedere i client distanti situati in un altro segmento.

Problemi correlati