Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Защита по IP
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (2): [1] 2 »   

> Описание: Блокировка по определённому IP-диапазону
Vladimir
Отправлено: 09 Февраля, 2008 - 04:12:21
Post Id


Advanced Member


Покинул форум
Сообщений всего: 270
Дата рег-ции: Апр. 2005  

Карма 0




Можно ли сделать так, чтобы нежелательные посетители не могли просматривать ту или иную страницу?
Т.е. должно происходить разделение по IP: если человек заходит с IP не добавленного в запрещённый список, то ему скрипт выдаёт один контент. А если с запрещённого - то другой контент.

Как это сделать?
 
 Top
Furax
Отправлено: 09 Февраля, 2008 - 07:40:47
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




Vladimir
Либо проверять значение переменных $_SERVER['REMOTE_ADDR'] и $_SERVER['HTTP_X_FORWARDED_FOR'], либо, не заморачиваясь со скриптами, прописать нужное правило в .htaccess.
 
 Top
Vladimir
Отправлено: 09 Февраля, 2008 - 09:39:13
Post Id


Advanced Member


Покинул форум
Сообщений всего: 270
Дата рег-ции: Апр. 2005  

Карма 0




Нужно не просто закрыть доступ по определённому IP-диапазону (например, от xxx.xx.34.56 до xxx.xx.58.96), а сделать так, чтобы при заходе с этих IP посетителю выдавался контент, отличающийся от того, что передаётся всем остальным IP.
Через .htaccess можно это сделать?
 
 Top
Vladimir
Отправлено: 09 Февраля, 2008 - 09:48:55
Post Id


Advanced Member


Покинул форум
Сообщений всего: 270
Дата рег-ции: Апр. 2005  

Карма 0




Кое-что нашёл:

Цитата:
Показ разных страниц, в зависимости от IP адреса посетителя:
SetEnvIf REMOTE_ADDR <нужный ip адрес> REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /another_page.html

Например, перенаправление посетителей с ip адресом 192.12.131.1 на страницу about_my_sity.html:
SetEnvIf REMOTE_ADDR 192.12.131.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /about_my_sity.html
http://www.wmaster.ru/htaccess/#q13

Как сделать, чтобы посетители с IP от xxx.xx.34.56 до xxx.xx.58.96 перенаправлялись на нужный адрес?

(Отредактировано автором: 09 Февраля, 2008 - 09:50:38)

 
 Top
Vladimir
Отправлено: 09 Февраля, 2008 - 13:08:27
Post Id


Advanced Member


Покинул форум
Сообщений всего: 270
Дата рег-ции: Апр. 2005  

Карма 0




Есть скрипт для расшифровки IP-адресов:
CODE:
<html><head><title>IP information</title></head>
<body bgcolor="#a0a000" text="#800000">
<center>
<FORM action="ip_information.php" method="POST">
<font size=+2 color="#000000"><b><i>
Enter IP for All Information:
<br>
(format: xxx.xxx.xxx.xxx)
</i></b></font>
<br>
<INPUT type="text" name="ip" size="35">
<input type="submit" value="Ok">
</form>
</center>
<?php
if ($ip!="")
{
$sock=fsockopen ("whois.ripe.net",43,$errno,$errstr);
if (!$sock)
{
echo ($errstr($errno)."<br>");
}
else
{
fputs ($sock,$ip."\r\n");
while (!feof($sock))
{
echo (str_replace(":",": ",fgets ($sock,128))."<br>");
}
}
fclose ($sock);
}
?>
</body></html>

Можно ли сделать так, чтобы при обращении к странице, информация об IP того, кто к ней обратился выводилась автоматически и обращалась в одну переменную (например, $content)?
А потом, если в полученном тексте встречаются определённые слова - один редирект. Если не встречаются - другой.
 
 Top
Furax
Отправлено: 09 Февраля, 2008 - 23:16:09
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




Vladimir
Ну, вместо echo, очевидно, надо набивать информацию в переменную...
 
 Top
Vladimir
Отправлено: 10 Февраля, 2008 - 02:28:12
Post Id


Advanced Member


Покинул форум
Сообщений всего: 270
Дата рег-ции: Апр. 2005  

Карма 0




Это понятно, но сначала скрипт должен автоматически при загрузке страницы выдавать всю инфу об IP того, кто к этой странице обратился (как здесь, например: http://itsoft.ru/soft/web-servic...amp;for_printing , но расширенно). Я другой скрипт находил, но он тупил, что я откуда-то аж из Амстердама!
В общем, скрипт сначала получает инфу об IP посетителя, обращает её в переменную. А потом уже полученный текст анализируется: если в нём встречаются определённые слова (например, помимо IP, название провайдера, его номеров телефонов или город), то тогда скрипт выдаёт один код. Если не встречаются - другой.

(Отредактировано автором: 10 Февраля, 2008 - 02:38:52)

 
 Top
Vladimir
Отправлено: 10 Февраля, 2008 - 02:59:40
Post Id


Advanced Member


Покинул форум
Сообщений всего: 270
Дата рег-ции: Апр. 2005  

Карма 0




if ($ip!="") - здесь IP должен автоматически определяться при обращении к странице

(Отредактировано автором: 10 Февраля, 2008 - 03:00:14)

 
 Top
Vladimir
Отправлено: 10 Февраля, 2008 - 13:32:32
Post Id


Advanced Member


Покинул форум
Сообщений всего: 270
Дата рег-ции: Апр. 2005  

Карма 0




Я сам докумекал этот скрипт:
CODE:
<?php
if (getenv('HTTP_X_FORWARDED_FOR'))
{
$ip=getenv('HTTP_X_FORWARDED_FOR');
}
else {
$ip=getenv('REMOTE_ADDR');
}
{
$sock=fsockopen ("whois.ripe.net",43,$errno,$errstr);
if (!$sock)
{
$content.= ($errstr($errno)."<br>");
}
else
{
fputs ($sock,$ip."\r\n");
while (!feof($sock))
{
$content.= (str_replace(":",": ",fgets ($sock,128))."<br>");
}
}
fclose ($sock);
}
?>
<?=$content?>

Всю инфу автоматически выводит.

Как теперь сделать, чтобы текст анализировался на наличие определённых слов и т.д.?
 
 Top
Furax
Отправлено: 11 Февраля, 2008 - 01:06:36
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




Vladimir
Проще всего сделать поиск, например:
CODE:
if (strpos($content, 'Moscow')!==FALSE) { header('location: bad.html'); exit (0); }
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0495]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33