Xwab
Форумыnavigate_nextПрограммирование на PHP

Антинакрутка в топ
Сообщения
SL_NeKrOmAnT

Умные кодеры =) подскажите , как сделать более-менее нормальную антинакрутку =) просто топ геном можно все заменить =) в моск ничего не приходит свежего

10 Мар 2011, 0:36
luethus

по ip, один ip - более одного перехода не защитывать. у оперы мини определять реальный ip через x_forwarded_for (только убедиться перед этим, что это реально опера мини, сверив айпи по базе).
не засчитывать много переходов с разных айпи, если это айпи левых неснгшных стран - китай, израиль, италия и тд, это могут быть прокси

10 Мар 2011, 2:38
SL_NeKrOmAnT

насчет стран более менее нормальная идея .... но до этого полный бред =) который в каждом топе стоит =)

10 Мар 2011, 7:38
luethus

1 ip = 1 хост это не бред, это самое очевидное, что можно сделать в первую очередь, и это не значит что надо этим пренебрегать)

10 Мар 2011, 8:17
SL_NeKrOmAnT

luethus, я те говорю так во всех топах 1 айпи 1 хост ... это крутят подменяют

10 Мар 2011, 14:38
luethus

SL_NeKrOmAnT, да я в курсе, я писал топ) я о том, что если не сделать это, крутить еще больше будут)

10 Мар 2011, 14:40
Fashion

ип подменяют? О_0 может юзают прокси,а не подменяют?

10 Мар 2011, 14:47
Ant0ha

Если мобильный топ, то лучший вариант, имхо, это засчитывать хосты только по ip мобильных операторов (проверять их по базе), ну, и за одно оперу мини как указано в посте #2, + опять же сверять X_FORWARDED_FOR с базой мобильных операторов.

10 Мар 2011, 15:02
JESOD

Fashion, придираешься к словам  Одежда тоже не становится маленькой, а мы вырастаем

10 Мар 2011, 15:02
Istsam

IstsaM style
При загрузке счётчика

//ф-ия Ip
   //ф-ия ip
function get_ip() {
   if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
      if (is_ip($_SERVER['HTTP_X_FORWARDED_FOR']))
         return $_SERVER['HTTP_X_FORWARDED_FOR'];
      foreach( explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']) as $ip ) {
         $ip=trim($ip);
         if (is_ip($ip))
            return $ip;
      }
   }
   return $_SERVER['REMOTE_ADDR'];
}
$sql = mysql_fetch_assoc(mysql_query("SELECT * FROM `site` WHERE `id`='$id'"));
$ip = ip();
if($site['ip']==$ip)
{
echo'не пытайся крутить';
}
else
{
echo'+ 1 хост';
mysql_unbuffered_query("UPDATE `site` SET `host`=`host`+1,`ip`='$ip' WHERE `id`='$id' LIMIT 1");
}

^^
Кодом выше мы делаем антинакрутку.
Если ip пользователя в базе, тоесть если последний ip=ip пользователя, то не считаем юзера.
Можно конечно вносить все ip адреса с которых был просмотр и потом фильтровать по другому:

$sql=mysql_query("запрос"):
if(in_array($sql['ip'])==$ip){

}
else{

}

10 Мар 2011, 15:10
Ответить на тему