Можно ли сделать так, чтобы нежелательные посетители не могли просматривать ту или иную страницу?
Т.е. должно происходить разделение по IP: если человек заходит с IP не добавленного в запрещённый список, то ему скрипт выдаёт один контент. А если с запрещённого - то другой контент.
Как это сделать?
1. Vladimir - 09 Февраля, 2008 - 04:12:21 - перейти к сообщению
2. Furax - 09 Февраля, 2008 - 07:40:47 - перейти к сообщению
Vladimir
Либо проверять значение переменных $_SERVER['REMOTE_ADDR'] и $_SERVER['HTTP_X_FORWARDED_FOR'], либо, не заморачиваясь со скриптами, прописать нужное правило в .htaccess.
Либо проверять значение переменных $_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 можно это сделать?
Через .htaccess можно это сделать?
4. Vladimir - 09 Февраля, 2008 - 09:48:55 - перейти к сообщению
Кое-что нашёл:
Как сделать, чтобы посетители с IP от xxx.xx.34.56 до xxx.xx.58.96 перенаправлялись на нужный адрес?
Цитата:
http://www.wmaster.ru/htaccess/#q13 Показ разных страниц, в зависимости от 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
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
Как сделать, чтобы посетители с IP от xxx.xx.34.56 до xxx.xx.58.96 перенаправлялись на нужный адрес?
5. Vladimir - 09 Февраля, 2008 - 13:08:27 - перейти к сообщению
Есть скрипт для расшифровки IP-адресов:
Можно ли сделать так, чтобы при обращении к странице, информация об IP того, кто к ней обратился выводилась автоматически и обращалась в одну переменную (например, $content)?
А потом, если в полученном тексте встречаются определённые слова - один редирект. Если не встречаются - другой.
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>
<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, очевидно, надо набивать информацию в переменную...
Ну, вместо echo, очевидно, надо набивать информацию в переменную...
7. Vladimir - 10 Февраля, 2008 - 02:28:12 - перейти к сообщению
Это понятно, но сначала скрипт должен автоматически при загрузке страницы выдавать всю инфу об IP того, кто к этой странице обратился (как здесь, например: http://itsoft.ru/soft/web-servic...amp;for_printing , но расширенно). Я другой скрипт находил, но он тупил, что я откуда-то аж из Амстердама!
В общем, скрипт сначала получает инфу об IP посетителя, обращает её в переменную. А потом уже полученный текст анализируется: если в нём встречаются определённые слова (например, помимо IP, название провайдера, его номеров телефонов или город), то тогда скрипт выдаёт один код. Если не встречаются - другой.
В общем, скрипт сначала получает инфу об 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?>
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); }