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

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

Strict Standards: Resource ID#36 used as offset, casting to integer (36) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Защита по IP
ТвойWeb » WebMaster класс » PHP/Perl » Защита по IP

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

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

Как это сделать?
2. Furax - 09 Февраля, 2008 - 07:40:47 - перейти к сообщению
Vladimir
Либо проверять значение переменных $_SERVER['REMOTE_ADDR'] и $_SERVER['HTTP_X_FORWARDED_FOR'], либо, не заморачиваясь со скриптами, прописать нужное правило в .htaccess.
3. Vladimir - 09 Февраля, 2008 - 09:39:13 - перейти к сообщению
Нужно не просто закрыть доступ по определённому IP-диапазону (например, от xxx.xx.34.56 до xxx.xx.58.96), а сделать так, чтобы при заходе с этих IP посетителю выдавался контент, отличающийся от того, что передаётся всем остальным IP.
Через .htaccess можно это сделать?
4. Vladimir - 09 Февраля, 2008 - 09:48:55 - перейти к сообщению
Кое-что нашёл:

Цитата:
Показ разных страниц, в зависимости от 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 перенаправлялись на нужный адрес?
5. Vladimir - 09 Февраля, 2008 - 13:08:27 - перейти к сообщению
Есть скрипт для расшифровки 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)?
А потом, если в полученном тексте встречаются определённые слова - один редирект. Если не встречаются - другой.
6. Furax - 09 Февраля, 2008 - 23:16:09 - перейти к сообщению
Vladimir
Ну, вместо echo, очевидно, надо набивать информацию в переменную...
7. Vladimir - 10 Февраля, 2008 - 02:28:12 - перейти к сообщению
Это понятно, но сначала скрипт должен автоматически при загрузке страницы выдавать всю инфу об IP того, кто к этой странице обратился (как здесь, например: http://itsoft.ru/soft/web-servic...amp;for_printing , но расширенно). Я другой скрипт находил, но он тупил, что я откуда-то аж из Амстердама!
В общем, скрипт сначала получает инфу об IP посетителя, обращает её в переменную. А потом уже полученный текст анализируется: если в нём встречаются определённые слова (например, помимо IP, название провайдера, его номеров телефонов или город), то тогда скрипт выдаёт один код. Если не встречаются - другой.
8. Vladimir - 10 Февраля, 2008 - 02:59:40 - перейти к сообщению
if ($ip!="") - здесь IP должен автоматически определяться при обращении к странице
9. Vladimir - 10 Февраля, 2008 - 13:32:32 - перейти к сообщению
Я сам докумекал этот скрипт:
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?>

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

Как теперь сделать, чтобы текст анализировался на наличие определённых слов и т.д.?
10. Furax - 11 Февраля, 2008 - 01:06:36 - перейти к сообщению
Vladimir
Проще всего сделать поиск, например:
CODE:
if (strpos($content, 'Moscow')!==FALSE) { header('location: bad.html'); exit (0); }

Форум на AlfaSpace.NET


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

[Script Execution time: 0.0369]     [ 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