On Sun, 17 Apr 2005 hunter@mimuw.edu.pl wrote:
On Sun, Apr 17, 2005 at 09:44:36AM +0200, KubaTyszko wrote:
On Sun, Apr 17, 2005 at 08:53:31AM +0200, Łukasz Jarosław Mozer wrote:
function GetNodeByMAC($ip) { exec("arp -an | grep -v incompl | grep $ip" ,$result); foreach ($result as $arpline)
I dlaczego to nie próbuje korzystać z /proc/net/arp? Zastanawiam się kto tego potworka wymyślił, ale obawiam się że mogłem to być i ja ;)
bo /proc/net/arp jest tylko (chyba). w linuxach. (a juz na pewno w moim freebsd tego nie ma).
W /usr/compat/proc też od biedy można podmountować ale /sbin/arp jest jakby bardziej uniwersalne i w tą stronę należy iść... A bardziej to jakiś mały między mordź który co np 2-5 minut próbuje /sbin/arp -an do plika tekstowego zrzucić.
2 minuty to długo. Można jeszcze użyć plików arpwatch-a. On ma znacznie lepszy czas reakcji, bo dopisze już w momencie wysłania DHCP a potem będzie powiązanie IP->ARP przechowywał długo...
Tylko /sbin/arp (lub /usr/sbin/arp zgodnie z FSF 2) jest znacznie częściej niż arpwatch...
A swoją drogą, grep twierdzi, że jak do tej pory nikt nie używał tej funkcji, więc może ona wcale nie jest potrzebna. Może wystarczy pobrać listę IP-MAC (używa /proc i proxy-arpa) i wybrać adres, który nas interesuje. Bardziej kosztowne, ale ładniejsze. No i nie tworzy podprocesów, których apache nienawidzi....
Boczi