Fatum
Пользователь
Есть хак ограничения захода по IP адресам. Вот он:
Проблема в том что хак по смыслу изначально подрозумевает что сети разрешины и мы прописываем то что запрещаем.
Мне это очень не удобно!
Кто сможет переделать хак таким образом чтобы изначально все сети были запрещены и только указывая адрес или диапазон адресов им было рарещен доступ?
При этом крайне желательно чтобы диапазон адресов в хаке указывался
не в формате 80.83.224.0/24 а в формате 80.83.224.0 - 80.83.225.255
Код:
$acess_prov = array(
"80.82.60.225",
"87.229.156.191/24",
"127.0.0.1/24",
"80.83.224.0/24",
);
function net_match ( $networks , $ip )
{
foreach ($networks as $network)
{
$ip_arr = explode ( '/' , $network );
$network_long = ip2long ( $ip_arr [ 0 ]);
$hexmask = 0xFFFFFFFF;
$x = ip2long ( $ip_arr [ 1 ]);
$mask = long2ip($x) == $ip_arr[1] ? $x : 0xffffffff << (32 - $ip_arr[1]);
$ip_long = ip2long ( $ip );
if (($ip_long & $mask) == ($network_long & $mask))
{
return true;
break;
}
}
return false;
}
$email = "****@yandex.ru";
if (!net_match($acess_prov, $_SERVER["REMOTE_ADDR"]))
{
die("<html>
<body>
<br /><br /><br />
<center><h2>Доступ для вашей сети запрещен.</2>
<br />
<h3>Если Вы распологаетесь на территории ************* напишите администратору.
<br />E-Mail: admin@****.me
<br /> В письме укажите свой IP адрес и провайдера.</h3></center>
</body></html>");
}
unset($acess_prov, $email);
Проблема в том что хак по смыслу изначально подрозумевает что сети разрешины и мы прописываем то что запрещаем.
Мне это очень не удобно!
Кто сможет переделать хак таким образом чтобы изначально все сети были запрещены и только указывая адрес или диапазон адресов им было рарещен доступ?
При этом крайне желательно чтобы диапазон адресов в хаке указывался
не в формате 80.83.224.0/24 а в формате 80.83.224.0 - 80.83.225.255