mozna by to uruchamiac przed rysowaniem mapy sieci w lms'ie i zaznaczyc innym kolorem ikony kompy ktore sa online
 
byq 
 
-------Original Message-------
 
Date: 07/23/04 13:25:07
To: lms
Subject: [lms] arp i apache [lekki offtopic] - doœć długie, ale imho ciekawe
 
Hej!
 
Trochę offtopicznie, ale <wazelina> gdzie indziej znajdę ludzi, którzy będą tyle wiedzieli ;-) </wazelina>.
 
 
 
Jestem w trakcie popełniania małego programiku w php, który ma pomóc w serwisowaniu awarii sieci.
 
Awarii takich, że gdzieś na osiedlu, któryśtam switch się powiesi i ludzie przez niego podpięci nie mają netu.
 
 
 
Programik działa 3 etapowo.
 
1. Przycisk "odblokuj" robi "sudo ip neigh flush nud all" (czyli zwalnia z trzymania mac-ip)
 
2. Najobszerniejsza część - przycisk "sprawdź"
 
  a) "arp -n | grep '192.168' | grep -v incomplete | awk {'print $1'}"
 
   - czyli dostaję listę ipków ludzi, którzy w tym momencie są widziani przez arp serwera (trochę toporne, ale ok)
 
  b) listę IPków wrzucam do tabeli, a potem korzystając z baz stworzonych przez LMSa znajduję adresy pocztowe ludzi, których serwer widzi
 
  c) adres wywalam do tabelki, sortuję i dzięki temu wiem, że na ul. Jasnej (15 userów) net działa wszystkim, zaś na ulicy Ciemnej działa tylko mieszkającym pod nr 4 (no i "resetowiec" już wie, którego switcha w pierwszej kolejności sprawdzić)
 
3. Przycisk zablokuj - "su arp -f"
 
 
 
Acha, oczywiście przycisk "sprawdź" można naciskać nieskończoną ilość razy (pod warunkiem wcześniejszego odblokowania), bo dynamiczna tablica arp ma pełne prawo się zmieniać..
 
 
 
Uff..
 
 
 
Niby wszystko ok, a jednak..
 
Problem polega na tym, że gdy z shella wywołam linię
 
arp -n | grep '192.168' | grep -v incomplete | awk {'print $1'}
 
to w odpowiedzi dostanę np 40 IPków
 
A jeśli to samo zrobię z poziomu httpd (w tym samym czasie!!)- dostaję 2 - 3 IPki..
 
Nie mam pojęcia dlaczego..
 
Niejako intuicyjnie znalazłem częściowe obejście problemu.
 
Bezpośrednio przed "arp -n" dodałem "sleep 4;"
 
No ale teraz oczywiście strona sie ładuje 4 sekundy dużej..
 
I na dodatek wszystko wskazuje na to, że w tablicy wypisuje tylko tych, których arp zobaczył w ciągu tych 4 sekund. Tak więc kilkukrotne naciskanie "sprawdź" pokazuje za każdym razem tylko fragment tego, co analogiczny arp wpisany z linii poleceń.
 
 
 
Macie jakiś pomysł? Z czego to może wynikać? Bo niestety, nie mam zielonego pojęcia...
 
 
 
pozdroofka
 
Krzysztof 'Xyo' Dendra