[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипт управления ip
universalsite
Проблемный вопрос.
Ответ на который толком никто дать не может, что на USA что на RU сайтах. Нужна ваша помощь.

Более 2 недель ищу.

Всё что нашел выкладываю здесь. Надеюсь на квалифицированную поддержку.
Я конечно новичок в этом деле но кое что умею, руки тоже не кривые но практики в панорамированию на ПХП нет.

На одном сайте нарыл:

Определение IР-адреса;
Занесение его в базу, которая обновляется (обнуляется) через 24 часа;
Проверка посетителя по IP адресу (сверка с базой) и блокирование доступа, если с такого IP уже заходили.
...


Начнем по порядку

Определение IР-адреса;

в данном случае вопрос стоит в определении ip посетителя, но я приведу еще пример определения ip сервера
посетителя
<?php 
echo $_SERVER["REMOTE_ADDR"];
?>


сервера
Цитата
<?php
echo $_SERVER["SERVER_ADDR"];
?>




Иногда использую для определения ip функцию РНР getenv(...);
посетителя
Цитата
<?php
$ip = getenv ("REMOTE_ADDR");
?>



Занесение его в базу, которая обновляется (обнуляется) через 24 часа;

Для этого создайте базу данных IP со следующими столбцами:
ID | IP | DATE
и заносите свои данные в таблицу
Цитата
<?php
$ip=$_SERVER["REMOTE_ADDR"];
$date=("Y-m-d");
$q = mysql_query("insert into table (IP, DATE) values ('$ip','$date') ");
?>



не забывайте коннектиться к MySQL

А для очистки используйте код еще проще, можно даже при каждом запуске скрипта. Если дата уже не текущая, то все значения IP удаляются.
Цитата
<?php
$date=("Y-m-d");
$q = mysql_query("delete from table where DATE!='$date' ");
?>



Проверка посетителя по IP адресу (сверка с базой) и блокирование доступа, если с такого IP уже заходили.

Схема такая: смотрим в базе, есть ли такой IP, если IP есть то блокируем посетителя.
Цитата
<?php
$ip=$_SERVER["REMOTE_ADDR"];
$q = mysql_query("select count(*) from table where IP='$ip'");
$ROW= mysql_fetch_array($q);
if ($ROW[0]>0) die ("Доступ запрещен");
?>[php]


Я работаю с joomla 1.5... создал что-то на подобие модуля установил еффекта никакого.

модуль



Спустя 2 минуты, 27 секунд (3.11.2010 - 17:17) universalsite написал(а):
Что нужно?

Нужно так сделать чтобы человек посетивший один раз сайт был заблокирован на 24 часа, и если ему нужно будет что-то уточнить на сайте пусть заходит на следующий день.

Спустя 9 минут, 59 секунд (3.11.2010 - 17:27) SlavaFr написал(а):
Цитата (universalsite @ 3.11.2010 - 14:14)
Проверка посетителя по IP адресу (сверка с базой) и блокирование доступа, если с такого IP уже заходили.

а так не получится.
Ip может менятся при каждом запросе, кроме того имеется прокси-серверы и ты можеш сразу тысячи людей заблокировать.
Если хочеш блокировать, так только благодоря логину.

Спустя 3 минуты, 36 секунд (3.11.2010 - 17:30) universalsite написал(а):
Сайт базируется на одной странице. Страница визитка на базе Joomla.

Мне главное сделать так чтобы один и тот же ip не посещал страницу более одного раза в день.

Хорошо или плохо сам обдумывал.

Но решения остается прежним.

Кто знает помогите.

Спустя 26 минут, 2 секунды (3.11.2010 - 17:56) kovaldm написал(а):
Отправляйте куки.

Спустя 2 минуты, 8 секунд (3.11.2010 - 17:59) SlavaFr написал(а):
прикольно, что ты пологаешся на вещи, которые в http-портоколе не предусмотренны.
ты к стате используй mysql_error и echo так как информация
Цитата (universalsite @ 3.11.2010 - 14:14)
Я работаю с joomla 1.5... создал что-то на подобие модуля установил еффекта никакого.
довольно скудная. если у тебя нет не какого еффекта и мы сразу ошибки из кода не найдем, то у нас еффект будет еще меньше.
ты к стате таблицу действительно table назвал?


Спустя 5 минут, 15 секунд (3.11.2010 - 18:04) SlavaFr написал(а):
Цитата (kovaldm @ 3.11.2010 - 14:56)
Отправляйте куки.

А на куки можно также положится как и на IP, т.е все это до одного места. Только регистрация может гарантировать что реч идет действительно о том человеке, который поситил сайт и то, в том случае если его пароль не стянули и актуальную сессию не взломали.

Спустя 2 минуты, 30 секунд (3.11.2010 - 18:06) universalsite написал(а):
Вам довольно просто сказать, отправляйте куки.

На мой взгляд как новичку в php работе проще будет с помещу скрипта или модуля на joomla в становить запрет на посещения сайта.

Выше я выкладывал скрипты знаю точно то что они рабочие видел как работают, мне если честно понравилось. Но тот человек который разместил у себя на сайте должен в остановить joomla, но с восстановлением скрипт пропал.

Надеюсь на вашу поддержку.

Мне нужно сделать так чтобы этот скрипт заработал. Или на подобие него.


+ на сайте нет регистрации. Она не нужна.
Все делается для учета реального трафика.


На счет модуля которого я пробивал.

Спустя 1 минута, 34 секунды (3.11.2010 - 18:08) kovaldm написал(а):
А не зарегеный юзер сможет торчать на сайте круглосуточно. Так что тоже не решение.
Либо скрывать часть информации от незарегистрированных пользователей.

Спустя 1 минута, 1 секунда (3.11.2010 - 18:09) universalsite написал(а):
модуль
там 15кб
http://depositfiles.com/files/rzgoly8sp

Спустя 1 минута, 14 секунд (3.11.2010 - 18:10) universalsite написал(а):
под 1.5 сам написал. В программировании на php полный 0

но Google и учебники помогли

Спустя 4 минуты, 17 секунд (3.11.2010 - 18:14) Invis1ble написал(а):
universalsite
алгоритм и код, который ты привел должен работать нормально, но работать с ip - это есть плохо
Эффекта никакого - понятие относительное, ошибки давай (mysql_error())

Спустя 3 минуты, 56 секунд (3.11.2010 - 18:18) universalsite написал(а):
Я смотрю и joomla установила этот модуль но эффекта никакого.

пожалуйста посмотрите модуль может где то я не разобрался.

Но на мой взгляд может бить проблема с привязкой к базе данных.

Я боле чем установил модуль больше ничего не делал.

Спустя 2 часа, 47 минут, 55 секунд (3.11.2010 - 21:06) SlavaFr написал(а):
я в Jomla не разбираюсь, но нахожу абсолутно неправилным применять mysq функции после того как вызвана база данных
$db =& JFactory::getDBO();
с первого же запроса в гугле нашел JDatabase с подозрительным методом query
http://api.joomla.org/Joomla-Framework/Dat.../JDatabase.html

на мой вопрос :
Цитата (SlavaFr @ 3.11.2010 - 14:59)
ты к стате таблицу действительно table назвал?

ты не ответил словами, но зато кодом. Да ты действительно назвал таблицу table и вызываеш ее в sql без кавычек `` , что конечно приведет к 100% ошибке во всех sql которые ты вызываеш в скрипте, так как это слово имеет особое значение в sql. Таже проблема будет с полем DATE.

К сожалению не могу больше помочь, так как не имею опыта с jomloa и саму идею блокировки ip для твоих целей нахожу неправильной.


Цитата (Invis1ble @ 3.11.2010 - 15:14)
алгоритм и код, который ты привел должен работать нормально

может алгоритм и правильный, но код в актуальном виде работать не может.

Спустя 2 часа, 4 минуты, 51 секунда (3.11.2010 - 23:11) Invis1ble написал(а):
SlavaFr
естественно говоря "код должен работать нормально" я имел ввиду, что названия таблицы и полей будут заключены в косые кавычки, а так - да, служебные слова )

Спустя 1 час, 32 минуты, 46 секунд (4.11.2010 - 00:44) SlavaFr написал(а):
@Invis1ble да я просто придераюсь biggrin.gif

Спустя 2 минуты, 22 секунды (4.11.2010 - 00:46) Игорь_Vasinsky написал(а):
ну конечно же куки (time of dead 24ч) - при входе записать (прада если они влючены)
и проверять - если они есть - то отправлять на mytraff.ru ))))))))

траффиком тож принебригать нельзя..........

Спустя 54 минуты, 45 секунд (4.11.2010 - 01:41) SlavaFr написал(а):
Цитата (Игорь_Vasinsky @ 3.11.2010 - 21:46)
(прада если они влючены)

в том то и дело.

Спустя 14 минут, 23 секунды (4.11.2010 - 01:55) Игорь_Vasinsky написал(а):
а представь скока народу сидит на мтс коннект....

или прокси... куки эффективнее

Спустя 20 часов, 37 минут, 31 секунда (4.11.2010 - 22:33) universalsite написал(а):
Смотрите. Мне в принципе не так важно или под Джумла или просто сайт без системы.

Мне главное чтобы ограничить ip

Если кто знает помогите время идет а толку нету.


Спустя 10 минут, 51 секунда (4.11.2010 - 22:44) Игорь_Vasinsky написал(а):

Спустя 6 минут, 7 секунд (4.11.2010 - 22:50) Invis1ble написал(а):
universalsite
ну что тут непонятного.. Ты ж сам алгоритм уже привел.
По нему и делай - там все просто
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.