File size: 3.74Kb
<?php
include_once '../sys/inc/start.php';
include_once COMPRESS;
include_once SESS;
include_once '../sys/inc/home.php';
include_once SETTINGS;
include_once DB_CONNECT;
include_once IPUA;
include_once FNC;
include_once ADM_CHECK;
include_once USER;
user_access('adm_ban_ip', null, 'index.php?' . SID);
$opsos = NULL;
$set['title'] = 'Бан по IP';
include_once THEAD;
title();
if (isset($_POST['min']) && isset($_POST['max'])) {
if (!preg_match("#^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$#", $_POST['min']))
$err[] = 'Неверный формат IP-адреса';
if (!preg_match("#^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$#", $_POST['max']))
$err[] = 'Неверный формат IP-адреса';
$min = ip2long($_POST['min']);
$max = ip2long($_POST['max']);
if (ip2long($ip) >= $min && ip2long($ip) <= $max) {
$err[] = 'Ваш IP входит в заданный диапазон';
} elseif (!isset($err)) {
dbquery("INSERT INTO `ban_ip` (`min`, `max`) values('$min', '$max')", $db);
msg('Диапазон успешно забанен');
}
}
if (isset($_GET['delmin']) && isset($_GET['delmax']) &&
dbresult(dbquery("SELECT COUNT(*) FROM `ban_ip` WHERE `min` = '" . $_GET['delmin'] . "' AND `max` = '" . $_GET['delmax'] . "' LIMIT 1", $db), 0) != 0) {
dbquery("DELETE FROM `ban_ip` WHERE `min` = '" . $_GET['delmin'] . "' AND `max` = '" . $_GET['delmax'] . "' LIMIT 1");
dbquery("OPTIMIZE TABLE `ban_ip`");
msg('Диапазон успешно удален');
}
err();
aut();
$k_post = dbresult(dbquery("SELECT COUNT(*) FROM `ban_ip`"), 0);
$k_page = k_page($k_post, $set['p_str']);
$page = page($k_page);
$start = $set['p_str'] * $page - $set['p_str'];
$q = dbquery("SELECT * FROM `ban_ip` LIMIT $start, $set[p_str]");
echo '<div class="list-group">';
if ($k_post == 0) {
echo "<div class='list-group-item'>\n";
echo "Нет результатов\n";
echo "</div>\n";
}
while ($post = dbassoc($q)) {
echo "<div class='list-group-item'>\n";
echo long2ip($post['min']) . ' - ' . long2ip($post['max']);
echo "<a href='?page=$page&delmin=$post[min]&delmax=$post[max]' title='Удалить' style='float:right'><i class='mdi mdi-delete'></i></a>\n";
echo "</div>\n";
}
if ($k_page > 1) {
str('?', $k_page, $page);
} // Вывод страниц
$min = NULL;
$max = NULL;
if (isset($_GET['min']) && preg_match("#^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$#", long2ip($_GET['min']))) {
echo "HOST: " . gethostbyaddr(long2ip($_GET['min'])) . "<br />\n";
$min = long2ip($_GET['min']);
$max = long2ip($_GET['min']);
if (isset($_GET['max']) && preg_match("#^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$#", long2ip($_GET['max']))) {
$max = long2ip($_GET['max']);
}
}
echo "<form method='post' class='list-group-item' action='?ban=$passgen'>\n";
echo "<div class='mb-3'>";
echo "<label class='form-label'>Начало</label>";
echo "<input name='min' class='form-control' value='$min' type='text' />\n";
echo "</div>\n";
echo "<div class='mb-3'>";
echo "<label class='form-label'>Конец</label>";
echo "<input name='max' class='form-control' value='$max' type='text' />\n";
echo "</div>\n";
echo '<button type="sybmit" class="btn btn-primary btn-sm">Забанить</button> ';
echo "</form>\n";
if (user_access('adm_panel_show')) {
echo "<div class='list-group-item list-group-item-light'>\n";
echo "<a href='index.php'><i class='mdi mdi-arrow-left'></i> Панель управления</a><br />";
echo "</div>\n";
}
echo "</div>\n";
include_once TFOOT;
?>