Вывод данных в виде таблицы Веб форме из базы

Сканирование сети получение Логина пользователя
на основе скриптов cmd и bash
Базы Данных Mysql и Веб интерфейса отображения
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 331
Зарегистрирован: Вс фев 17, 2019 17:47
Репутация: 4
Откуда: Вологодская область
Контактная информация:

Вывод данных в виде таблицы Веб форме из базы

Сообщение Артём Мамзиков » Вс ноя 15, 2020 19:50 #1

1 Табличный вид
2 Авто обновление страницы каждые 30 секунд
3 Разного цвета данные зависит от даты Зеленый - сегодня, Оранжевый - не старше 14 дней, Красный старше 14 дней
4 Сортировка таблицы
5 Кнопка вверх
6 Удаление данных которых нет 1 месяц
7 Фильтр по подсетям
8 Поиск по таблице
9 попробовать сравнить данные с glpi и ocs на поиск отсутствующих Хостов
10 Объединить одинаковые данные в одну строку (одно дополняет другое) время по мину вывести самое новое из всех
11 Отдельно отобразить откуда давно не было данных (пример данные с linux идут а с windows нет или по логину не идут)
12 показать отдельно дубли например 1 IP меняет MAC или для одного MAC меняются IP

Готово 1, 2, 3, 4(некорректно сортирует IP), 5, 6, 7,

Скачать
WEB.zip
WEB.zip
(78.25 КБ) 5 скачиваний
scan-seti.jpg
scan-seti.jpg
Подключение к базе данных
connect.php
connect.php
Показать
<?php
//Данные для подключения
$db_hostname = 'localhost';
$db_username = 'scan';
$db_password = 'scan';
$db_database = 'scan_seti';
//Подключаемся к mysql серверу
$db_server = mysqli_connect($db_hostname, $db_username, $db_password, $db_database);

/* Проверить соединение */
if (mysqli_connect_errno()) {
printf("Соединение не удалось: %s\n", mysqli_connect_error());
exit();
}

if (!mysqli_query($db_server, "SELECT DATABASE()")) {
printf("Сообщение ошибки: %s\n", mysqli_error($db_server));
}

/* Проверка БД */
mysqli_select_db($db_server, $db_database);

/* возвращаем имя текущей базы данных */
if ($result = mysqli_query($db_server, "SELECT DATABASE()")) {
$row = mysqli_fetch_row($result);
printf("База данных по умолчанию %s.\n", $row[0]);
mysqli_free_result($result);
}

/* изменение набора символов на utf8 */
if (!mysqli_set_charset($db_server, "utf8")) {
printf("Ошибка при загрузке набора символов utf8: %s\n", mysqli_error($db_server));
exit();
} else {
printf("Текущий набор символов: %s\n", mysqli_character_set_name($db_server));
}
?>
tabl.php
tabl.php
Показать
<?php
header('refresh: 1800');

//Устанавливаем кодировку
header('Content-Type: text/html; charset=utf-8');

error_reporting(E_ALL);
ini_set("display_errors", 1);

//Коннектимся с БД
require_once 'connect.php';

$net_select = '<select class="select-subnet">';
$net_select .= '<option selected value="-1">ВСЕ</option>';

// список подсетей
if ( $net_data = $db_server->query('select substring_index(IP, ".", 3) as net, inet_aton(IP) as IPvINT from scansetibd group by net order by IPvINT asc') ) {
while ( $sub_net = mysqli_fetch_assoc($net_data) ) {
$net_select .= '<option>'.$sub_net['net'].'</option>';
}
}
$net_select .= '</select>';
?>

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" media="screen,projection" href="css/ui.totop.css" />
<title>Сканер сети</title>
</head>
<body onLoad="scroll(); id=top">

<h1 align="center">Сканер сети Логины Spark</h1>

<?php
echo '<br>Фильтр подсетей &nbsp;'.$net_select.'<br><br>';
?>

<table border="1" width="100%" id="grid1">
<thead><tr align="center">
<th data-type="string" style="cursor: pointer;">DATE</th>
<th data-type="string" style="cursor: pointer;">IPN</th>
<th data-type="string" style="cursor: pointer;">IP</th>
<th data-type="string" style="cursor: pointer;">MAC</th>
<th data-type="string" style="cursor: pointer;">HOSTNAME/DNS</th>
<th data-type="string" style="cursor: pointer;">NAMEMAC</th>
<th data-type="string" style="cursor: pointer;">LOGIN</th>
<th data-type="string" style="cursor: pointer;">SHARE-DISK</th>
<th data-type="string" style="cursor: pointer;">SHARE-IPC</th>
<th data-type="string" style="cursor: pointer;">SHARE-PRINT</th>
<th data-type="string" style="cursor: pointer;">SHARE-NOFILTR</th>
<th></th></tr>
</thead>
<tbody>

<?php
//Выбираем данные столбцов из таблицы scansetibd
$query = "SELECT DATE, INET_NTOA(IPN), IP, MAC, HOSTNAMEDNS, NAMEMAC, LOGIN, DISK, IPC, PRINT, NOFILTR, inet_aton(IP) as IPvINT FROM scansetibd order by IPvINT asc";

$result = $db_server->query($query);

if (mysqli_num_rows($result) == 0) {
die('Ошибка при выполнении запроса: ' . mysqli_error());
}

while ($row = mysqli_fetch_row($result)) {
if ($row[0] >= date("Y-m-d")){
$color = ' bgcolor = "#99FF99"';
} elseif($row[0] > date("Y-m-d", strtotime("-14 days"))){
$color = ' bgcolor = "#FFCC99"';
} elseif($row[0] <= date("Y-m-d", strtotime("-14 days"))){
$color = ' bgcolor = "#FF9999"';
} else{
$color = 'bgcolor = ';
}

echo "<tr $color>";
echo '<td>' . $row[0] . '</td>';
echo '<td>' . $row[1] . '</td>';
echo '<td>' . $row[2] . '</td>';
echo '<td>' . $row[3] . '</td>';
echo '<td>' . $row[4] . '</td>';
echo '<td>' . $row[5] . '</td>';
echo '<td>' . $row[6] . '</td>';
echo '<td>' . $row[7] . '</td>';
echo '<td>' . $row[8] . '</td>';
echo '<td>' . $row[9] . '</td>';
echo '<td>' . $row[10] . '</td>';
echo '<td>' . '<a onclick="return(confirm(\'Удалить ?\'))" href="delete.php?id='. $row[0] .'">Удалить</a></td>';
echo "</tr>";
}
?>
</tbody>
</table>

<p id="toTop"><a href="#top"><span></span>^Наверх^</a></p>

<script src="jquery.min.js"></script>
<script src="gridsorter.js"></script>

<script type="text/javascript">
$(document).ready(function(){
$("#back-top").hide();
$(function() {
$(window).scroll(function() {
if ($(this).scrollTop() != 0) {
$('#toTop').fadeIn();
} else {
$('#toTop').fadeOut();
}
});

$('#toTop').click(function() {
$('body,html').animate({scrollTop:0},200);
return false;
});
});

gridsorter('grid1');

// фильтр подсетей
$('.select-subnet').on('change', function () {
$("#grid1 tbody tr").show();

let selText = $(this).val();
if ( selText != '-1') {
$("#grid1 tbody tr").each(function(){
let td = $(this).find('td:eq(2)').text();
if ( td.indexOf(selText) != 0 ) {
$(this).hide();
}
});
}
});
});
</script>

</body>
</html>
Предыдущая версия отдельные таблицы tabl.php
Показать
<?php header('refresh: 1800');

//Устанавливаем кодировку
header('Content-Type: text/html; charset=utf-8');

error_reporting(E_ALL);
ini_set("display_errors", 1);
//Коннектимся с БД
require_once 'connect.php';
$connect = require_once 'connect.php';

//Заголовк
echo '<h1 align="center">Сканер сети Логины Spark</h1>';

//Выбираем данные столбцов из таблицы scansetibd
$query = "SELECT DATE, INET_NTOA(IPN), IP, MAC, HOSTNAMEDNS, NAMEMAC, LOGIN, `DISK`, `IPC`, `PRINT`, `NOFILTR` FROM scansetibd";
$result = $db_server->query($query);
if (mysqli_num_rows($result) > 0) {
echo '<table border=1 width="100%" id="grid1">';
//Шапка таблцы
echo '<thead><tr align="center"><th data-type="string" style="cursor: pointer;">DATE</th><th data-type="string" style="cursor: pointer;">IPN</th><th data-type="string" style="cursor: pointer;">IP</th><th data-type="string" style="cursor: pointer;">MAC</th><th data-type="string" style="cursor: pointer;">HOSTNAME/DNS</th><th data-type="string" style="cursor: pointer;">NAMEMAC</th><th data-type="string" style="cursor: pointer;">LOGIN</th><th data-type="string" style="cursor: pointer;">SHARE-DISK</th><th data-type="string" style="cursor: pointer;">SHARE-IPC</th><th data-type="string" style="cursor: pointer;">SHARE-PRINT</th><th data-type="string" style="cursor: pointer;">SHARE-NOFILTR</th><th></th></tr></thead>';
echo '<tbody>';
$rows = mysqli_num_rows($result);
for ($i = 0; $i < $rows; ++$i) {
$current_row = mysqli_fetch_row($result);
if ($current_row[0] >= date("Y-m-d")){
$color = ' bgcolor = "#00FF99"';
}elseif($current_row[0] > date("Y-m-d", strtotime("-14 days"))){
$color = ' bgcolor = "#FFC859"';
}elseif($current_row[0] <= date("Y-m-d", strtotime("-14 days"))){
$color = ' bgcolor = "#E45959"';
}else{
$color = 'bgcolor = ';
}
echo "<tr $color>";
echo '<td>' . $current_row[0] . '</td>';
echo '<td>' . $current_row[1] . '</td>';
echo '<td>' . $current_row[2] . '</td>';
echo '<td>' . $current_row[3] . '</td>';
echo '<td>' . $current_row[4] . '</td>';
echo '<td>' . $current_row[5] . '</td>';
echo '<td>' . $current_row[6] . '</td>';
echo '<td>' . $current_row[7] . '</td>';
echo '<td>' . $current_row[8] . '</td>';
echo '<td>' . $current_row[9] . '</td>';
echo '<td>' . $current_row[10] . '</td>';
echo '<td>' . '<a onclick="return(confirm(\'Удалить ?\'))" href="delete.php?id='. $current_row[0] .'">Удалить</a></td>';
echo "</tr>";
}
echo '</tbody>';
echo '</table>';

} else {
die('Ошибка при выполнении запроса: ' . mysqli_error());
}

//Заголовк
echo '<h1 align="center">Сканирование сети Linux</h1>';

//Выбираем данные столбцов из таблицы LINUXSCANSETI
$query = "SELECT ID, DATE, IP, DNS, MAC, NAMEMAC, `LDISK`, `LIPC`, `LPRINT`, `LNOFILTR` FROM LINUXSCANSETI";
$result = $db_server->query($query);
if (mysqli_num_rows($result) > 0) {
echo '<table border=1 width="100%" id="grid2">';
//Шапка таблцы
echo '<thead><tr align="center"><th data-type="string" style="cursor: pointer;">DATE</th><th data-type="string" style="cursor: pointer;">IP</th><th data-type="string" style="cursor: pointer;">DNS</th><th data-type="string" style="cursor: pointer;">MAC</th><th data-type="string" style="cursor: pointer;">NAMEMAC</th><th data-type="string" style="cursor: pointer;">SHARE-DISK</th><th data-type="string" style="cursor: pointer;">SHARE-IPC</th><th data-type="string" style="cursor: pointer;">SHARE-PRINT</th><th data-type="string" style="cursor: pointer;">SHARE-NOFILTR</th><th></th></tr></thead>';
echo '<tbody>';
$rows = mysqli_num_rows($result);
for ($i = 0; $i < $rows; ++$i) {
$current_row = mysqli_fetch_row($result);
if ($current_row[1] >= date("Y-m-d")){
$color = ' bgcolor = "#00FF99"';
}elseif($current_row[1] > date("Y-m-d", strtotime("-14 days"))){
$color = ' bgcolor = "#FFC859"';
}elseif($current_row[1] <= date("Y-m-d", strtotime("-14 days"))){
$color = ' bgcolor = "#E45959"';
}else{
$color = 'bgcolor = ';
}
echo "<tr $color>";
echo '<td>' . $current_row[1] . '</td>';
echo '<td>' . $current_row[2] . '</td>';
echo '<td>' . $current_row[3] . '</td>';
echo '<td>' . $current_row[4] . '</td>';
echo '<td>' . $current_row[5] . '</td>';
echo '<td>' . $current_row[6] . '</td>';
echo '<td>' . $current_row[7] . '</td>';
echo '<td>' . $current_row[8] . '</td>';
echo '<td>' . $current_row[9] . '</td>';
echo '<td>' . '<a onclick="return(confirm(\'Удалить ?\'))" href="delete.php?id='. $current_row[0] .'">Удалить</a></td>';
echo "</tr>";
}
echo '</tbody>';
echo '</table>';

} else {
die('Ошибка при выполнении запроса: ' . mysqli_error());
}

//Заголовк
echo '<h1 align="center">Логины SPARK</h1>';

//Выбираем данные столбцов из таблицы SPARKLOGIN
$query = "SELECT ID, DATE, LOGIN, HOSTNAME, IP FROM SPARKLOGIN";
$result = $db_server->query($query);
if (mysqli_num_rows($result) > 0) {
echo '<table border=1 width="100%" id="grid3">';
//Шапка таблцы
echo '<thead><tr align="center"><th data-type="string" style="cursor: pointer;">DATE</th><th data-type="string" style="cursor: pointer;">LOGIN</th><th data-type="string" style="cursor: pointer;">HOSTNAME</th><th data-type="string" style="cursor: pointer;">IP</th><th></th></tr></thead>';
echo '<tbody>';
$rows = mysqli_num_rows($result);
for ($i = 0; $i < $rows; ++$i) {
$current_row = mysqli_fetch_row($result);
if ($current_row[1] >= date("Y-m-d")){
$color = ' bgcolor = "#00FF99"';
}elseif($current_row[1] > date("Y-m-d", strtotime("-14 days"))){
$color = ' bgcolor = "#FFC859"';
}elseif($current_row[1] <= date("Y-m-d", strtotime("-14 days"))){
$color = ' bgcolor = "#E45959"';
}else{
$color = 'bgcolor = ';
}
echo "<tr $color>";
echo '<td>' . $current_row[1] . '</td>';
echo '<td>' . $current_row[2] . '</td>';
echo '<td>' . $current_row[3] . '</td>';
echo '<td>' . $current_row[4] . '</td>';
echo '<td>' . '<a onclick="return(confirm(\'Удалить ?\'))" href="delete.php?id='. $current_row[0] .'">Удалить</a></td>';
echo "</tr>";
}
echo '</tbody>';
echo '</table>';

} else {
die('Ошибка при выполнении запроса: ' . mysqli_error());
}

//Заголовк
echo '<h1 align="center">Сканирование сети Windows</h1>';

//Выбираем данные столбцов из таблицы WINSCANSETI
$query = "SELECT ID, DATE, IP, MAC, NAME, `WDISK`, `WIPC`, `WPRINT` FROM WINSCANSETI";
$result = $db_server->query($query);
if (mysqli_num_rows($result) > 0) {
echo '<table border=1 width="100%" id="grid4">';
//Шапка таблцы
echo '<thead><tr align="center"><th data-type="string" style="cursor: pointer;">DATE</th><th data-type="string" style="cursor: pointer;">IP</th><th data-type="string" style="cursor: pointer;">MAC</th><th data-type="string" style="cursor: pointer;">NAME</th><th data-type="string" style="cursor: pointer;">SHARE-DISK</th><th data-type="string" style="cursor: pointer;">SHARE-IPC</th><th data-type="string" style="cursor: pointer;">SHARE-PRINT</th><th></th></tr></thead>';
echo '<tbody>';
$rows = mysqli_num_rows($result);
for ($i = 0; $i < $rows; ++$i) {
$current_row = mysqli_fetch_row($result);
if ($current_row[1] >= date("Y-m-d")){
$color = ' bgcolor = "#00FF99"';
}elseif($current_row[1] > date("Y-m-d", strtotime("-14 days"))){
$color = ' bgcolor = "#FFC859"';
}elseif($current_row[1] <= date("Y-m-d", strtotime("-14 days"))){
$color = ' bgcolor = "#E45959"';
}else{
$color = 'bgcolor = ';
}
echo "<tr $color>";
echo '<td>' . $current_row[1] . '</td>';
echo '<td>' . $current_row[2] . '</td>';
echo '<td>' . $current_row[3] . '</td>';
echo '<td>' . $current_row[4] . '</td>';
echo '<td>' . $current_row[5] . '</td>';
echo '<td>' . $current_row[6] . '</td>';
echo '<td>' . $current_row[7] . '</td>';
echo '<td>' . '<a onclick="return(confirm(\'Удалить ?\'))" href="delete.php?id='. $current_row[0] .'">Удалить</a></td>';
echo "</tr>";
}
echo '</tbody>';
echo '</table>';

} else {
die('Ошибка при выполнении запроса: ' . mysqli_error());
}
?>

<!DOCTYPE html>
<html>
<link rel="stylesheet" media="screen,projection" href="css/ui.totop.css" />
<body onLoad="scroll(); id=top">
<p id="toTop">
<a href="#top"><span></span>^Наверх^</a>
</p>
</body>
</html>

<script src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#back-top").hide();
$(function() {
$(window).scroll(function() {
if($(this).scrollTop() != 0) {
$('#toTop').fadeIn();
} else {
$('#toTop').fadeOut();
}
});
$('#toTop').click(function() {
$('body,html').animate({scrollTop:0},800);
return false;
});
});
});
</script>

<script src="gridsorter.js"></script>
<script>
gridsorter('grid1');
gridsorter('grid2');
gridsorter('grid3');
gridsorter('grid4');
</script>
Для кнопки вверх используется JS ява скрипт и для отображения css
jquery.min.js ui.totop.css

Для сортировки таблицы используется JS gridsorter.js

разные записи
Показать
Требует меньше памяти (4 байта INT против 15 байт CHAR).
Удобно производить выборки по диапазонам адресов и маскам, а также делать сортировку (получается обычная сортировка по числам)
Функции преобразования ip-адреса в mysql:
INET_ATON() — для преобразования IP адреса в число,
INET_NTOA() — для обратного преобразования числа в IP адрес.
Для простоты запоминания нужно знать расшифровку аббревиатуры:
ATON — Address TO Number (адрес в число),
NTOA — Number TO Address (число в адрес).

СОЗДАТЬ ТАБЛИЦУ
ALTER TABLE `scansetibd` ADD `IPN` INT(10) UNSIGNED NOT NULL AFTER `DATE`;

Joshuabew
Гость
Сообщения: 3
Зарегистрирован: Чт янв 21, 2021 01:30
Репутация: 0
Откуда: Canada
Контактная информация:

Вывод данных в виде таблицы Веб форме из базы

Сообщение Joshuabew » Вт фев 23, 2021 04:24 #2

Доброго времени суток всем. Кто знает, как инициализировать объект с данным или массив, чтобы его можно было вывести в шаблоне. Примерно в таком виде:
Код HTML:

Ответить Вложения 2

Вернуться в «Сканирование сети получение Логина пользователя»