форум vBSupport.ru > vBulletin > Вопрос — Ответ
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
progreCCor
Простоузер
Default Как сделать отключение по странам?
0

Мой форум задолбали китайские спамеры.
Я решил сделать отключение по странам, загрузив на форум базу GeoIP. Теперь я могу определить в переменных PHP к какой стране принадлежит IP того человека, что зашел на форум...
Осталось дело за малым -- где можно вставить это определение удобнее всего и как сделать чтобы форум не открывался для Китая?
На данный момент я сделал определение страны в модуле, который мне установил мой скин. Но вот дальше работать с условными переходами на Vbulletin я не умею. и где почитать не знаю....

если надо, то дам ссылку на свой форум. но так думаю пока не буду, чтобы не сочли за рекламу...
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Мик
Эксперт
 
Мик's Avatar
Default
0

забань по маске
 
 
Vangerltd
Знаток
 
Vangerltd's Avatar
Default
0

осталось только узнать все пулы китайских провайдеров)
 
 
FiX
Простоузер
Default
0

Я думаю гораздо проще это сделать через .htaccess.
В аттаче файлик с заблоченными китайскими IP, взятыми из http://www.maxmind.com/download/geoi...CountryCSV.zip
Attached Files
File Type: rar china.rar (2.9 KB, 4 views)
 
 
zzzru
Знаток
Default
0

Когда в .htaccess много строк (а их будет не мало для целой страны), то очень сильно возрастает нагрузка на сервер и время отклика. Не советую поступать таким образом.

Для борьбы со спамом советую установить продукт NoSpam! и придумать штук 5 простых человеческих вопросов. Проблема полностью отпадет.
 
 
progreCCor
Простоузер
Default
0

Да..... спрашиваю одно, отвечают другое.
Объясняю медленно!
Я загрузил базу GeoIP!
Теперь, когда заходишь на мой форум, то отображается и страна и город и провайдер посетителя.
Чтобы банить по маске, мне надо перечислить все маски китайских юзеров. Да я задолбаюсь это делать!

В переменной $country_name, которая заполняется у меня после запроса к базе данных, вот так:

$meIP=$_SERVER["REMOTE_ADDR"];

$tt="SELECT owner,time_zone,city_name,country_name FROM ipligence WHERE ip_from <= INET_ATON('".$meIP."') and ip_to >= INET_ATON('".$meIP."') LIMIT 1";
$temp=$db->query_first("SET SQL_BIG_SELECTS=1");
$temp=$db->query_first($tt);
$country_name=$temp['country_name'];
$isp_owner=$temp['owner'];
$ttime_zone=$temp['time_zone'];
$city_name=$temp['city_name'];


хранится имя страны. вопрос только в том какие операторы выполнить чтобы не показывать китайцам форум?
что написать здесь:
if($city_name="china)
{
....
}
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 09:30 PM.


Powered by vBulletin® Version ?.?.?
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...