Перейти к публикации

Рекомендованные сообщения

Подскажите, почему меня не пускает в админку, когда в admin.php прописываю:

$ip_diapazones=array(

'93.178.',

);


$user_ip_net=explode(".",$_SERVER['REMOTE_ADDR']);

$user_diap=$user_ip[0].'.'.$user_ip[1];


if(!in_array($user_diap,$ip_diapazones)){

$die='<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head>

<title>404 Not Found</title>

</head><body>

<h1>Not Found</h1>

<p>The requested URL '.$_SERVER['REQUEST_URI'].' was not found on this server.</p>

<hr>

<address>'.$_SERVER['SERVER_SIGNATURE'].'</address>

</body></html>';

@header( "HTTP/1.0 404 Not Found" );

die( $die ); }

Ип у меня точно такой как указан, проверял и в сервисах и в профиле своем.

Ссылка на сообщение
Поделиться на других сайтах

Щас голова не сильно варит, но вроди это из-за диапазона.

попробуй в htaccess прописать

Ссылка на сообщение
Поделиться на других сайтах

попробуй убрать точку в конце диапазона

Не поможет. Это ип одного из членов админки. У меня ип статичный и я его прописывал полностью без точки в конце, не пускал.

попробуй в htaccess прописать

Работает, но хотелось бы "наверняка".

Ссылка на сообщение
Поделиться на других сайтах

Ну дык, в htaccess какраз наверняка ;)

Ссылка на сообщение
Поделиться на других сайтах

Не поможет. Это ип одного из членов админки. У меня ип статичный и я его прописывал полностью без точки в конце, не пускал.

почему не поможет?

ты просто пишешь ип с точкой

а для проверки создаешь ип без точки

$user_diap=$user_ip[0].'.'.$user_ip[1];

и вообще там разные переменные!

$ip_diapazones=array(

'93.178.',

);

$user_ip_net=explode(".",$_SERVER['REMOTE_ADDR']);

$user_diap=$user_ip[0].'.'.$user_ip[1];

чуешь разницу?

убери точку и замени на

$user_ip=explode(".",$_SERVER['REMOTE_ADDR']);
либо уже используй $user_ip_net
$user_diap=$user_ip_net[0].'.'.$user_ip_net[1];

Изменено пользователем prikindel
Ссылка на сообщение
Поделиться на других сайтах

Я не силен в php) Тоесть получиться должно так?

$ip_diapazones=array(

'93.178',

);


$user_ip=explode(".",$_SERVER['REMOTE_ADDR']);


if(!in_array($user_diap,$ip_diapazones)){

$die='<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head>

<title>404 Not Found</title>

</head><body>

<h1>Not Found</h1>

<p>The requested URL '.$_SERVER['REQUEST_URI'].' was not found on this server.</p>

<hr>

<address>'.$_SERVER['SERVER_SIGNATURE'].'</address>

</body></html>';

@header( "HTTP/1.0 404 Not Found" );

die( $die ); }

Ссылка на сообщение
Поделиться на других сайтах

вот так

$ip_diapazones=array(

'93.178',

);


$user_ip=explode(".",$_SERVER['REMOTE_ADDR']);

$user_diap=$user_ip[0].'.'.$user_ip[1];


if(!in_array($user_diap,$ip_diapazones)){

$die='<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head>

<title>404 Not Found</title>

</head><body>

<h1>Not Found</h1>

<p>The requested URL '.$_SERVER['REQUEST_URI'].' was not found on this server.</p>

<hr>

<address>'.$_SERVER['SERVER_SIGNATURE'].'</address>

</body></html>';

@header( "HTTP/1.0 404 Not Found" );

die( $die ); }

Ссылка на сообщение
Поделиться на других сайтах

Проблема другого плана)) Когда указываю маску типа 93.178 - пускает, когда пишу полный айпишник, не пускает)

Ссылка на сообщение
Поделиться на других сайтах

if(!in_array($user_diap,$ip_diapazones)){

конечно же не работает, он проверяет xx.xx.xx.xx в массиве где xx.xx

Ссылка на сообщение
Поделиться на других сайтах

1. Добавить свой диапазон вместо полного IP

2. Прописать в .htaccess

Изменено пользователем kpravda
Ссылка на сообщение
Поделиться на других сайтах

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

Что-то типа:

$die = 'Hacking attempt!';

if (!$myip) die($die);

else {

  $go = '_http://_проверяем_диапазон_по_одному_ипу';

  $ip_go = file_get_content($go);

  $ip = preg_match('|_маска_|',$ip_go);

  if (!$ip) die($die);

}

Можно еще ограничение на время поставить и прочие плюшки, от 10-20 запросов в день на определение ипов (хотя, это маловероятно) никто не пострадает, тем более, что пропускная способность любого нормального чекера до 5-30 запросов в секунду и до 300-1000 в сутки, в сети этих сервисов полно :)

Ссылка на сообщение
Поделиться на других сайтах

у меня всё это сделано проще, в .htaccess в самое начало пишем:

<Files "admin.php">

Order Deny,Allow

Deny from all

Allow from 192.168.1.2 

</Files>
где 192.168.1.2 - IP адрес, с которого разрешается вход в админку, можно добавить несколько:
Allow from 192.168.1.2 

Allow from 169.254.130.2 
Или же целые подсети:
Allow from  192.168.

В последнем случаи значение (IP адрес) обязательно должен заканчиваться точкой.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...