Mam taki problem w drobnej sieci.
Jest nowy klient wpina się w sieć i pobiera adresację dla nowych klientów oraz jego ruch dla www (80) zostaje przekierowany regułką iptables na drugi komputer (serwer), który to wyświetla mu informację przez WWW.
Nie może, adres MAC jest w 2 warstwie OSI więc nie jest widziany przez maszyny znajdujące się w innej sieci. Jedynie komputer znajdujący się w sieci 192.168.130.0 może pobrać jego MAC.
Możesz co najwyżej napisać sobie skrypt, który po podpięciu nowego klienta w puli NOAUTH będzie gdzieś zapisywał jego MAC i wysyłał do serwera z WWW.
Ale i tak nie bardzo wiem po co Ci to.
Jeśli po to, żeby podął ci ten adres przez telefon czytając go ze strony, to szybciej będzie jak go sobie odczytasz sam.
Chyba, że sieci 10.0.0.0 i 192.168.130.0 są w tej samej sieci fizycznej tylko z inną adresacją, to wtedy jest inna rozmowa.
Pytasz po co mi to - ano po to, aby nowy klient mógł podać telefonicznie swój adres MAC, czy też mógł wpisać poprawny poprzez panel klienta.
Obecnie jest to tak, że dzwoni i trzeba go prowadzić krok po kroku gdzie ma szukać. Niektórzy są cierpliwi i dają się pokierować, a niektórzy już nie i rzucają słuchawkami.
Tak więc, chciałem to w jakiś sposób zautomatyzować, aby posłużyć się klientem, który musi tylko przeczytać to co mu na stronie się wyświetliło. A to każdy głupi już potrafi.
Możesz rozwinąć myśl odnośnie opcji ze skryptem. W czym to można byłoby napisać i jak wysyłać na drugi serwer, aby ten poprawnie wyświetlał przy komunikacie WWW dla NOAUTH ich faktyczny adres MAC?
Obecnie staram się rozwiązać ten sam problem, ale nie bardzo mi idzie, wpadłem na ten sam pomysł, żeby sieć NOAUTH przekierować na adres serwera www z komunikatem co i jak oraz umożliwić klientom korzystanie z panelu gdzie mają swoje dane dostępne.
Pojawił się natomiast problem adresu MAC. Niby mogę zamieścić na stronie instrukcję jak go wyświetlić, ale ta instrukcja nie działa, jeśli klient podpiął router...
Rozmawiałem z naszymi programistami, twierdzą, że wyciągnięcie adresu MAC z komputera przez jakiś skrypt, np. javy jest możliwe, ale ciężkie do zrobienia i w dalszym ciągu pojawia się problem routera.
Zastanawiam się, czy nie przepuścić ruchu przez jakieś proxy i tam nie sprawdzać adresu, zakładam, że da się to wyciągnąć na tym etapie.
Na dzień dzisiejszy nie mam pomysłów, ale jak na coś wpadnę to się podzielę.
Myślałem nad tym, ale też nie mam na to teraz czasu, jakiś, wymyślił sobie inwentaryzację i zamiast robić co mam robić robię spis sprzętu. Dużo sprzętu, w rozległej sieci.
Drążąc temat, dla maszyn w tej samej sieci można:
[php]
<?php
$user_mac = exec('/usr/sbin/arp -an '.$_SERVER['REMOTE_ADDR']);
//var_dump($user_mac);
echo substr($user_mac, strpos($user_mac,'at ')+3, '17');
?>
[/php]
Nie mam niestety jak sprawdzić przy opcji z rutingiem.
LordRuthwen, masz na myśli wszelkie przełączniki, rutery, punkty dostępu i temu podobne? Nie uda Ci się zaprząc do pomocy np. czegoś z snmp?
Dla stacji roboczych polecam OCSInventory.
mariaczi, to co się dało nie wstając zza biurka już mam, problem z tym, czego się tak nie da sprawdzić.
To dla sieci lokalnej, ale problem pojawia się z serwisem www poza siecią lokalną.
Wypytałem w wielu różnych środowiskach i wielu podpowiada, aby podpiąć uruchomienie programu w perlu na serwerze dhcp w momencie przydziału noauth to program może zapisać IPi MAC do bazy danych mysql serwera.
A później na serwerze WWW wrzucić tylko odpowiednie zapytanie do bazy i mamy wszystko.