On Sun, 17 Apr 2005 hunter(a)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
--
.--------------.--Andrzej Boczek---------------http://www.linux.org.pl/---.
| _ . | Historia to banialuki |
| |_) _ _ _ | -= Henry Ford =- |
| |_)(_)(_ /_| | |
+--@boczi.net--+----------------------------------------------------------+