PDA

Просмотр полной версии : MAC средствами php


barnaki
13.03.2009, 13:12
есть ли возможност при помощи php узнать mac адрес или какой нить другой уникальный идентфикатор компа. и если да то как это делаеться

mailbrush
13.03.2009, 13:30
Если через ком. строку можно, то и через пхп тоже:
echo system("комманда которая узнает мак-адр");

SleepShadowWeb
13.03.2009, 13:48
<?
$arp=null;
$arp=array();
exec("ping ".$REMOTE_ADDR." -n 1 -l 1 -f -r 1");
exec("arp -a ".$REMOTE_ADDR,$arp);
$temp=ereg_replace(" +"," ",$arp[0]);
$temp=explode(" ",$temp);
print "IP: ".$temp[1]."<br>";
print "MAC: ".$temp[3];
?>

Gray_Wolf
13.03.2009, 13:52
Как правило это бессмысленно, так как MAC мы можем узнать только у последнего маршрутизатора. И как правило мы получаем МАC именно нашего маршритизатора, а не пользователя.

OdaN
14.03.2009, 01:29
Как правило это бессмысленно, так как MAC мы можем узнать только у последнего маршрутизатора. И как правило мы получаем МАC именно нашего маршритизатора, а не пользователя.

+1 Работать будет только в несегментированной локалке...

barnaki
15.03.2009, 16:15
спасибо. тогда такой вопрос. вообщем есть сайт на котором человек гадит. и надо его как то заблокировать. но проблема в том что у него динамический ip.
то есть даже если через htaccses заблокировать какой то диапазон то или вся его сеть может уйти спать или вообще весь провайдер. может кто подскажет как его заблокировать . максимально эффективно

Kaimi
15.03.2009, 16:25
то есть даже если через htaccses заблокировать какой то диапазон то или вся его сеть может уйти спать или вообще весь провайдер. может кто подскажет как его заблокировать . максимально эффективно

Если только кукисы поставить или по юзерагенту (если он у него специфический), или явой можешь попробовать узнать какие то специфичные параметры и по ним блокировать, например http://www.qualitycodes.com/tutorial.php?articleid=19

Правда если юзер не дурак, то заблокировать не получится

Gray_Wolf
15.03.2009, 16:29
На этот случай панацеи не бывает, и если как сказал Kaimi пользователь не дурак, то даже бан по диапозону не спасёт.
Как вариант, можеш почитать про супербан.
http://old.antichat.ru/txt/superban/

PaCo
15.03.2009, 18:13
Все зависит от технических знаний пользователя, любой супер бан можно обойти(http://old.antichat.ru/txt/superban/ - отключаем js и все а блокировать или заставлять включать js всех пользователей у которых отключен js это не есть гуд), можешь whois его ип банить диапозон ип его прова - но он может легко воспользоваться прокси что обойти твой бан. Можешь схитрить и делать тот же супер бан например посредством flash банера на сайте, но опять же все зависит от технических знаний пользователя.

Pashkela
15.03.2009, 18:16
http://habrahabr.ru/blogs/php/38359/

PaCo
15.03.2009, 18:28
http://habrahabr.ru/blogs/php/38359/
вот эти свойства поделываються в 2 клика

[browser_name] => Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_2; en-us) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.18
[browser_name_regex] => ^mozilla/5\.0 \(macintosh; .; .*mac os x.*\) applewebkit/.* \(.*\) version/3\.1.* safari/.*$
[browser_name_pattern] => Mozilla/5.0 (Macintosh; ?; *Mac OS X*) AppleWebKit/* (*) Version/3.1* Safari/*
[Parent] => Safari 3.1
[Platform] => MacOSX
[Browser] => Safari
[Version] => 3.1

все остальные крайне не уникальны


UPD. Полученные данные свидетельствуют лишь о поддержке браузером некоторой технологии, а не о ее доступности, так как файл browscap.ini это по сути база данных всех веб-клиентов, в которой по значению User-Agent браузера предоставляется информация о поддерживаемых этим браузером технологиях. Тоесть для современных браузеров при отключенных куках и яве соответствующие параметры все равно будут возвращать еденицу.

rcc0023
16.03.2009, 10:32
1. php => заносить все ипы в отдельную базу
2. cron => чекать (и потом банить) занесенные ипы на прокси
3. php => вывести (если кто то зашел с прокси) сообщение что мол нельзя использовать прокси
4. php => забанить ip спамера
5. php => все сообщения молча удалять.

работает на ура.

Gray_Wolf
16.03.2009, 10:52
2rcc0023 а если этот герой сидит под НАТом с динамическим IP, то банить весь диапозон?
Да и все прокси всёравно не забанить...
Если это форум, то можно сделать так:
1. Запретить свежезарегенным юзерам оставлять сообщения в течении первых 10-и(24) часов после регистрации.
2. Запретить оставлять сообщения без подтверждения почты.
3. Во время блокировки акка, заносить почту в бан-лист.

А дальше как и сказал rcc0023 "5. php => все сообщения молча удалять."

rcc0023
16.03.2009, 11:28
+ можно не банить, а по умному удалять. Точнее сделать скрипт, который каждые 3 минуты будет смотреть в сообщениях 'плохие слова' и удалять.

Спам уйдет на нет. xD

PaCo
16.03.2009, 14:25
+ можно не банить, а по умному удалять. Точнее сделать скрипт, который каждые 3 минуты будет смотреть в сообщениях 'плохие слова' и удалять.

Спам уйдет на нет. xD
ХМ не легче тогда уже сделать фильтр на эти 'плохие слова' прежде чем заносить их в базу без всяких извратов со скриптом через 3 минуты.

rcc0023
16.03.2009, 14:52
PaCo, легче!!!! Но я описал одну из возможностей отбить спамера.

...Когда программисту нечего 'обходить', но при этом со временем он заходит и видит что уже сообщения нет, он добавит снова (естественно РУКАМИ, так как писать программу не для ЧЕГО).. и снова, когда увидит что опять удалили...

- намного его не хватит
- форум живет (есть спамеры, есть МОДЕРАТОРЫ)