Moze bany moznaby bylo zalozyc na adres sprzetowy karty ?
Pomysl dobry, ale jak to zrobic w PHP [???]
moze tak ?
to nie moj kod zebyscie nie mysleli ze sie znam
<?php
function returnmacaddress() {
// Testowane tylko na linuxie,
// komendy 'which' and 'arp' powinny byc udostepnione jako wykonywalne
// przez uzytkownikow apache
// na wiekszosci linuxach domyslna konfiguracja na to pozwala
// ustawiamy komende ARP
$location = `which arp`;
$location = rtrim($location);
// wykonujemy komende ARP i zapamietujemy jaw $arpTable
$arpTable = `$location -n`;
// Dzielimy dane pobrane i wstawiamy do tablicy $arpSplitted
$arpSplitted = split("\n",$arpTable);
// pobieramy adres ip (ip adres klienta z przegladarki)
$remoteIp = $GLOBALS['REMOTE_ADDR'];
$remoteIp = str_replace(".", "\\.", $remoteIp);
// przyoisujemy wynik
foreach ($arpSplitted as $value) {
// Dzielimy kazda line arp,
$valueSplitted = split(" ",$value);
foreach ($valueSplitted as $spLine) {
if (preg_match("/$remoteIp/",$spLine)) {
$ipFound = true;
}
// IP zostanie znalezione to pobieramy mac adres
if ($ipFound) {
// przeszukujemy STRING z IP zwrucony przez ARP
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;
}
?>
//proponuje wrzucic do FAQ - chmolu
Moze ktos to sprawdzic?
http://forums.devarticles.com/showthread.php?p=36418
Może tu znajdzie się jakieś objaśnienie do tego kodu :)
Nie znam się na PHP, ale patrząc na ten kod od strony technicznej jest raczej zły.
Funkcja ta korzysta z polecenia arp, który zwraca adres MAC dla interfejsów lokalnych. Można dodawać to tabeli arp wpisy statyczne, ale trzeba podać adres sprzętowy :)
Zresztą jak jestem za NAT nie jest możliwe zdobycie adresu karty w sieci wewnętrznej, nawet jakby udało się w ten sposób to będzie do adres MAC serwera\bramy.
Co jeżeli użytkownik łączy się z poziomu modemu, adaptera ISDN? Te urządzenia nie posiadają adresu mac.
Na localhoscie to powinno działać, ale już po wrzuceniu na serwer, wątpie.
Zresztą w tym wątku co podał chmolu wszystko piszę
// jest napisane :P - chmolu
jezeli zabanujesz adres SPRETOWY modfemu dostepowego inni tez sie nie polacza ale jezeli jeden user zza NATU dostanie bana to tez na IP tego modemu sprzetowego , tak mysle. sam nie wiem nie zna msie tak bardzo
//skoro sie nie znasz, to po co zabierasz glos? - lofix