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']; // всё ОК, отрисовываем код реги } ?>
Подправил, теперь работает. Только одно но - диапазон айпишников проверяет по последней маске, т.е. 127.0.0.1/5 - он проверит все айпи от 127.0.0.1 до 127.0.0.5, поэтому если необходимый диапазон лежит в последних 2-х масках - 127.0.0.1-127.0.2.55 надо будет вбивать в массив: 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', );
//проверяем текущий айпишник со списком 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!"; // всё ОК, отрисовываем код реги } ?>
На сайте уже 3 дня нету кодов, по идее жалоб не должно быть, подскажите сколько еще ждать?
Ответ
Здравствуйте.
В случае, если нарушение не повторится, пометка в результатах поиска исчезнет в течение месяца. Процесс полностью автоматизирован, ускорить его, к сожалению, нельзя.
Еще доработан
//массив айпишников
$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']; // всё ОК, отрисовываем код реги
}
?>
Залить все файлы себе на хост(если много весят можно и так оставить) и монетизировать даунлоад пп.
Скинули, мож кому пригодицо
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!"; // всё ОК, отрисовываем код реги
}
?>
internetbs.net
my.ru-tld.ru
Лучше нет!
Та если б не их домен съехал бы давно...
internetbs.net пока все адекватно и не дорого, но акций на трансф. наверно нет.
Сколько вы платите за этот чудо хостинг?
У меня пару недель назад иногда создаал нагрузку на впс яндекс-бот, помогло Crawl-Delay 0.1 в robots.txt
G-and-Y, надолго ли? )
Больше ошибок не допущу, даже ужесточу доступ бота.
bdfyjd
Толку-то? Позиции-то просели.
Помалу возвращаются.
В результатах поиска сайт выводится без пометок.
Гуляем 🍻
Здравствуйте, Платон Щукин!
На сайте уже 3 дня нету кодов, по идее жалоб не должно быть, подскажите сколько еще ждать?
Ответ
В случае, если нарушение не повторится, пометка в результатах поиска исчезнет в течение месяца. Процесс полностью автоматизирован, ускорить его, к сожалению, нельзя.
От так от, теперь метки еще ЖЁСТЧЕ.