2012-01-18 15 views
5

Mam zamiar wykonać wykrywacz urządzeń mobilnych za pomocą jednego komputera pokładowego (SBC) z systemem operacyjnym Linux. SBC będzie posiadał bezprzewodowy adapter USB/802.11. SBC będzie serwerem DHCP. Urządzenie mobilne dołączy do sieci bezprzewodowej (adhoc lub infrastruktura, nie ma znaczenia) SBC. Kiedy urządzenie mobilne dołącza do sieci, SBC wykryje je. Sprawdza adres MAC przychodzącego urządzenia mobilnego za pomocą zestawu zaakceptowanych adresów. Jeśli istnieje dopasowanie, SBC wykona polecenie.Jak wykryć, kiedy znane urządzenia bezprzewodowe dołączą do mojej bezprzewodowej sieci LAN pod Linuksem

Mam podstawową wiedzę na temat systemu Linux. Nie mogę pisać skryptów powłoki, ale znam C++/Qt. Nie wiem, od czego zacząć. Czy znasz odpowiednie narzędzia wiersza polecenia lub biblioteki do użycia w tym projekcie?

P.S: Może potrzebuję tylko sposobu na wykrycie, kiedy zmienia się lista klientów dhcp. Wraz z filtrowaniem adresów MAC może to działać.

+0

Musisz nauczyć się trochę skryptu powłoki. Jeśli napiszesz demona, musisz napisać skrypt start i kill dla init.d. Cóż, nie jest to trudne, ale musisz znać podstawy :-) – rekire

+0

Mogę utworzyć jeden z istniejących skryptów start/kill. To nie jest problem. – niw3

+0

Powinieneś podać więcej szczegółów, na przykład, jaki rodzaj oprogramowania będzie działał na tym SBC? Robienie czegoś takiego jak AP oprogramowania wymagałoby hostapd, który, jak sądzę, ma wbudowaną funkcję filtrowania adresów MAC. –

Odpowiedz

0

Możesz użyć nmap, aby odkryć swoją sieć. Here można znaleźć kilka przykładów.

Następnie należy zanalizować wynik. Np .:

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 

I nmap posiada opcję -sn pominąć kontrole portów.

Jeszcze lepiej można użyć adresu ip neighbor show, aby wyświetlić adres IP sieci w sąsiedztwie.

Albo można użyć prostego ping test, jak:

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

I można połączyć go z nslookup zobaczyć nazwy hostów.

+0

Dzięki. Jednak nmap wyszukuje otwarte porty, więc urządzenie mobilne musi mieć otwarte porty, w przeciwnym razie nie zostanie wykryte. – niw3

+0

Jeśli zrobisz 'nmap -o $ IP_RANGE', to zgłasza coś takiego jak' Raport skanowania Nmapa na $ IP', a następnie w następnym wierszu 'host is up'. Ale zobacz moją zaktualizowaną odpowiedź. –

0

nmap testuje warstwę IP, ale urządzenia bezprzewodowe nie muszą jej używać.

Można również użyć trybu "Monitor" w interfejsie bezprzewodowym i/lub w połączeniu z odpowiednim programem słuchania, takim jak np. airodump-ng. Zauważ, że jeśli sieć bezprzewodowa korzysta z izolacji klienta, możesz zobaczyć znacznie mniej klientów niż w rzeczywistości uczestniczących, a także pamiętać, że podobnie jak prawidłowo przełączany Ethernet, niekoniecznie zobaczysz odległych klientów znajdujących się w innym segmencie.