- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Дночи, нужно ограничить доступ к странице по диапазону ип.
Нашел такое, но нельзя вставить диапазон 213.85.81.0/255, читал еще как то можно через ip2long но так толком ничего и не нашел, подскажите короче кто шарит.
$allowed = array(
'127.0.0.1',
'213.85.81.36',
'91.207.245.24'
);
if(!in_array($_SERVER['REMOTE_ADDR'], $allowed)) {
echo('Извини, тебе сюда нельзя');
exit;
}
// ...
echo('Спрятанное содержимое');
?>
но так толком ничего и не нашел
http://www.google.ru/search?newwindow=1&q=%D0%B4%D0%B8%D0%B0%D0%BF%D0%B0%D0%B7%D0%BE%D0%BD+ip+php&spell=1&sa=X
Тоже:
http://otlichnik.info/viewtopic.php?f=12&t=12
Скинули, мож кому пригодицо
127.0.0.1/255,
127.0.1.1/255,
127.0.2.1/55
В будущем можно будет доработать.
Код:
<?php
//массив айпишников, можно сделать подтягивание из файла, чтоб руками тут не править постоянно
$ip_array = array(
'127.0.0.0/16',
'192.168.0.1/58',
);
//текущий ИП-адрес посетителя
$cur_ip_adrr = $_SERVER['REMOTE_ADDR'];
$flag = false;
// функция проверки айпишников
function testIP($ip, $cidr){
list($net, $mask) = explode('/', $cidr);
list($a1, $a2, $a3, $a4) = explode('.', $net);
for($i = $a4; $i <= $mask; $i++){
if ($ip == ($a1.'.'.$a2.'.'.$a3.'.'.$i))
return true;
}
}
//проверяем текущий айпишник со списком
foreach($ip_array as $cur_cidr)
{
if(testIP($cur_ip_adrr, $cur_cidr)) $flag = true;
}
if ($flag == false)
{
echo "not so fast! "; // пускать нельзя, сюда пишем переадресацию
}
else
{
echo "all right!"; // всё ОК, отрисовываем код реги
}
?>
Еще доработан
//массив айпишников
$ip_array = array(
'31.135.208.0/21',
'37.110.208.0/21'
);
//текущий ИП-адрес посетителя
$cur_ip_adrr = $_SERVER['REMOTE_ADDR'];
$flag = false;
// функция проверки айпишников
function IP_match($addr, $cidrs)
{
if(!is_array($cidrs)) $cidrs = array($cidrs);
foreach($cidrs as $cidr)
{
if (strpos($cidr, "/")) // Для записей типа 82.208.77.243/32
{
list($ip, $mask) = explode("/", $cidr, 2);
if (strpos(".", $mask)) $mask = 0xffffffff & ip2long($mask);
else $mask = 0xffffffff << 32 - (int)$mask;
if((ip2long($addr) & $mask) == (ip2long($ip) & $mask)) return true;
}
else if (strpos($cidr, "-")) // Для записей типа 82.208.77.243-85.95.168.249
{
list($ip_1, $ip_2) = explode("-", $cidr, 2);
if (((ip2long($ip_2) > ip2long($ip_1)) && (((ip2long($addr) - ip2long($ip_1)) >= 0) && (( ip2long($ip_2) - ip2long($addr)) >= 0))) || ((ip2long($ip_2) < ip2long($ip_1)) && (((ip2long($addr) - ip2long($ip_1)) <= 0) && ((ip2long($ip_2) - ip2long($addr)) <= 0))) || ((ip2long($ip_1) == ip2long($ip_2)) && (ip2long($ip_1) == ip2long($addr)))) return true;
}
else if ($addr === $cidr) return true; // Для одиночных IP
}
return false;
}
//проверяем текущий айпишник со списком
foreach($ip_array as $cur_cidr)
{
if(IP_match($cur_ip_adrr, $cur_cidr)) $flag = true;
}
if ($flag == false)
{
echo "Not so fast! You are not from! Your ip: ".$_SERVER['REMOTE_ADDR']; // пускать нельзя, сюда пишем переадресацию
}
else
{
echo "All right! You are from! Your ip: ".$_SERVER['REMOTE_ADDR']; // всё ОК, отрисовываем код реги
}
?>