Freesco, NND, CDN, EOS
http://forum.freesco.pl/

wyświetlanie komunikatu w przypadku nowego kompa w sieci
http://forum.freesco.pl/viewtopic.php?f=24&t=13823
Strona 1 z 1

Autor:  muray [ niedziela, 15 października 2006, 16:15 ]
Tytuł:  wyświetlanie komunikatu w przypadku nowego kompa w sieci

będąc ostatnio u promotora chciałem podłączyć laptopa pod net. po podłączeniu i otwarciu przegladarki pojawił się komunikat podobny do czegos takiego

: [/] [] ()
ten komputer nie został zgłoszony administratorowi. internet zostanie podłączony po podaniu adresu mac k. sieciowej administratorowi


ma ktoś pomysł jak by takie coś można zrobić ? zakładam że musi to miec jakiś związek z ARP'em

rozwiązało by to prob kiedy ktoś kupuje nowego kompa albo przynosi od znajomego laptopa i dzwoni ze nie ma netu np.

Autor:  tasiorek [ niedziela, 15 października 2006, 16:48 ]
Tytuł: 

Bylo juz o tym.
Zostaw w dhcp w dynamicznej puli kilkanascie adresow i przekierouj wszystkie zapytania z nich na swoj serwer na port np 81, gdzie mozesz postawic podobna stronke z informacja.

Autor:  muray [ niedziela, 15 października 2006, 16:56 ]
Tytuł: 

thx za szybką odpowiedź, wg mnie powinno pojawić się to w FAQ.

Autor:  muray [ wtorek, 17 października 2006, 19:08 ]
Tytuł: 

mam jeszcze inne pytanie czy ktoś potrafi mi powiedzieć czy da sie napisać takie coś np w php zeby przy powiadomieniu na stronie pojawiał sie odrazu adres mac właściciela?

nie mam najmniejszego pojęcia o php więc jeśli ktoś znał by rozwiązanie na moje pytanie prosze o umieszczenie tutaj całego kodu pliku.

Autor:  marask [ wtorek, 17 października 2006, 19:53 ]
Tytuł: 

hmm ja mogę Ci tylko powiedziec (bo sam sie nie znam na tym tak dobrze), że ja bym to zrobił jako:

1. sprawdzenie ip z któego łączy się gość
2. wygrepowanie z arpa nowego maca, który jest pod tym ip
3. wyświetlenie maca

Autor:  muray [ piątek, 20 października 2006, 10:56 ]
Tytuł: 

wszystko pięknie ale ja nie mam zielonego pojecia jak to zrobić.

Autor:  marask [ piątek, 20 października 2006, 20:23 ]
Tytuł: 

Cytuj:
(bo sam sie nie znam na tym tak dobrze),

ja też :)

Autor:  barte-k [ piątek, 20 października 2006, 22:27 ]
Tytuł: 

: [/] [] ()
function returnMacAddress() {
// This code is under the GNU Public Licence
// Written by michael_stankiewicz {don't spam} at yahoo {no spam} dot com
// Tested only on linux, please report bugs

// WARNING: the commands 'which' and 'arp' should be executable
// by the apache user; on most linux boxes the default configuration
// should work fine

// Get the arp executable path
$location = `which arp`;
// Execute the arp command and store the output in $arpTable
$arpTable = `$location`;
// Split the output so every line is an entry of the $arpSplitted array
$arpSplitted = split("\n",$arpTable);
// Get the remote ip address (the ip address of the client, the browser)
$remoteIp = $GLOBALS['REMOTE_ADDR'];
// Cicle the array to find the match with the remote ip address
foreach ($arpSplitted as $value) {
// Split every arp line, this is done in case the format of the arp
// command output is a bit different than expected
$valueSplitted = split(" ",$value);
foreach ($valueSplitted as $spLine) {
if (preg_match("/$remoteIp/",$spLine)) {
$ipFound = true;
}
// The ip address has been found, now rescan all the string
// to get the mac address
if ($ipFound) {
// Rescan all the string, in case the mac address, in the string
// returned by arp, comes before the ip address
// (you know, Murphy's laws)
reset($valueSplitted);
foreach ($valueSplitted as $spLine) {
if (preg_match("/[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f]/i",$spLine)) {
return $spLine;
}
}
}
$ipFound = false;
}
}
return false;
}

Autor:  muray [ sobota, 21 października 2006, 12:04 ]
Tytuł: 

thx za skrypt miło by było jednak jak byś podał mi skąd go wytrzasnołes to może wtedy dowiedział bym sie jak go używać.

pozdrawiam

UPDATE

znalazłem go tutaj
http://www.php-editors.com/forums/archi ... t-385.html

ale mój poziom wiedzy nt php jest tak mały jak ziarenko piasu - narazie próbuje jakoś rozkminić jak uzyskać wynik działania skryptu w oknie przeglądarki

UPDATE2
doszedłem do tego ze dostaje w logach
/proc/net/arp: Permission denied

co poradzicie ?

Autor:  muray [ sobota, 21 października 2006, 15:43 ]
Tytuł: 

kolejny update znalazłem ze powinienem dodać arp'a do sudo aby apacz mógł go wykonywać więc

visudo
nobody ALL=NOPASSWD:/sbin/arp, /proc/net/arp

plik php wyglada tak

<?
..
treść skryptu
..

echo 'CLIENT MAC: ', returnMacAddress();
?>

ale to nie pomaga

co kuna robie źle :evil: ?

Autor:  MGM [ sobota, 21 października 2006, 16:40 ]
Tytuł: 

: [/] [] ()
<?php

$ip = $_SERVER['REMOTE_ADDR'];
$mac = `arp $ip | awk 'getline 2 {print$3}'`;

echo 'IP: '.$ip.'<br>MAC: '.$mac;

?>

Autor:  muray [ sobota, 21 października 2006, 16:53 ]
Tytuł: 

podobnie jak w poprzednim przypadku MAC nie działa..

Pokazuje samo IP

Autor:  tasiorek [ sobota, 21 października 2006, 17:52 ]
Tytuł: 

: [/] [] ()
<?

$ip = $_SERVER['REMOTE_ADDR'];
$mac = shell_exec ("/sbin/arp $ip | awk 'getline 2 {print$3}'");

echo 'IP: '.$ip.'<br>MAC: '.$mac;

?>

Autor:  muray [ sobota, 21 października 2006, 18:00 ]
Tytuł: 

kuna cały czas mi pokazuje w logu ze nie mam praw do

/proc/net/arp: Permission denied

Autor:  MGM [ sobota, 21 października 2006, 18:06 ]
Tytuł: 

: [/] [] ()
<?php

$ip = $_SERVER['REMOTE_ADDR'];
$mac = `sudo -S arp $ip | awk 'getline 2 {print$3}'`;

echo 'IP: '.$ip.'<br>MAC: '.$mac;

?>

Autor:  muray [ sobota, 21 października 2006, 18:11 ]
Tytuł: 

Ta ostatnia wersja działa ale czy jest to bezpieczne ze strony włamań itp? (odrazu mówie nie znam sie na php to tylko pytanie)

Autor:  MGM [ sobota, 21 października 2006, 18:18 ]
Tytuł: 

tak, jest bezpieczne. Mozesz zamienic jeszcze `` na shell_exec() tak jak w wersji tasiorka.

Autor:  muray [ sobota, 21 października 2006, 18:34 ]
Tytuł: 

wersja tasiorka nie działa. po dodaniu sudo tak.

UPDADE

Konkluzja całego wątku

wystarczy skonfigurowac apacza. w plik.php który ma prawa wykonywalnosci wkleic

<?php

$ip = $_SERVER['REMOTE_ADDR'];
$mac = `sudo -S arp $ip | awk 'getline 2 {print$3}'`;

echo 'IP: '.$ip.'<br>MAC: '.$mac;

?>

+ reszte dowolnego komunikatu

arpa dodac do sudo.

nastepnie skonfigurowac ARP'a i dhcp na sztywno + zostawic kilka wolnych adresow IP w dhcp.

wolne adresy przekierowac na wirtualny serwer na innym porcie (odsylam do konfiguracji apacza) i na tym wirtualnym serwerze zostawic komunikat.

wszystkie nowo - podpinane kompy beda przekierowywane na strone z komunikatem gdzie pokaze im sie ich aktualne ip i mac.

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/