ip.php 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/auth.php");
  3. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/languages/" . HTML_LANG . ".php");
  4. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/header.php");
  5. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/datetimefilter.php");
  6. if (isset($_POST['ip'])) { $f_ip = $_POST['ip']; }
  7. if (isset($_GET['ip'])) { $f_ip = $_GET['ip']; }
  8. if (!isset($f_ip) and isset($_SESSION[$page_url]['ip'])) { $f_ip=$_SESSION[$page_url]['ip']; }
  9. if (!isset($f_ip)) { $f_ip=''; }
  10. $_SESSION[$page_url]['ip']=$f_ip;
  11. print_log_submenu($page_url);
  12. ?>
  13. <div id="cont">
  14. <br>
  15. <?php echo WEB_log_mac_history_hint; ?>
  16. <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
  17. <?php print_date_fields($date1,$date2,$date_shift); ?>
  18. <?php echo WEB_log_select_ip_mac; ?>:&nbsp<input type="text" name="ip" value="<?php echo $f_ip; ?>" pattern="^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}|([0-9a-fA-F]{4}[\\.-][0-9a-fA-F]{4}[\\.-][0-9a-fA-F]{4})|[0-9A-Fa-f]{12})$"/>
  19. <?php print WEB_rows_at_page."&nbsp"; print_row_at_pages('rows',$displayed); ?>
  20. <input type="submit" value="<?php echo WEB_btn_show; ?>">
  21. </form>
  22. <?php
  23. $params = [$date1, $date2];
  24. $conditions = [];
  25. if (!empty($f_ip)) {
  26. if (checkValidIp($f_ip)) {
  27. $ip_long = sprintf('%u', ip2long($f_ip));
  28. $conditions[] = "ip_int = ?";
  29. $params[] = $ip_long;
  30. } elseif (checkValidMac($f_ip)) {
  31. $conditions[] = "mac = ?";
  32. $params[] = mac_dotted($f_ip);
  33. }
  34. }
  35. $whereClause = !empty($conditions) ? ' AND ' . implode(' AND ', $conditions) : '';
  36. $countSQL = "SELECT COUNT(*) FROM user_auth WHERE ts >= ? AND ts < ?" . $whereClause;
  37. $count_records = (int)get_single_field($db_link, $countSQL, $params);
  38. $total = ceil($count_records / $displayed);
  39. $page = max(1, min($page, $total));
  40. $start = ($page - 1) * $displayed;
  41. print_navigation($page_url, $page, $displayed, $count_records, $total);
  42. $dataParams = array_merge($params, [$displayed, $start]);
  43. $sSQL = "
  44. SELECT * FROM user_auth
  45. WHERE ts >= ? AND ts < ?" . $whereClause . "
  46. ORDER BY id DESC
  47. LIMIT ? OFFSET ?
  48. ";
  49. $iplog = get_records_sql($db_link, $sSQL, $dataParams);
  50. ?>
  51. <br>
  52. <table class="data">
  53. <tr align="center">
  54. <td class="data"><b>id</b></td>
  55. <td class="data" width=150><b><?php echo WEB_cell_created; ?></b></td>
  56. <td class="data" width=150><b><?php echo WEB_cell_last_found; ?></b></td>
  57. <td class="data"><b><?php echo WEB_cell_ip; ?></b></td>
  58. <td class="data"><b><?php echo WEB_cell_mac; ?></b></td>
  59. <td class="data"><b><?php echo WEB_cell_dhcp_hostname; ?></b></td>
  60. <td class="data"><b><?php echo WEB_cell_dns_name; ?></b></td>
  61. </tr>
  62. <?php
  63. foreach ($iplog as $row) {
  64. print "<tr align=center class=\"tr1\" onmouseover=\"className='tr2'\" onmouseout=\"className='tr1'\">\n";
  65. print "<td class=\"data\">" . $row['id'] . "</td>\n";
  66. print "<td class=\"data\">" . $row['ts'] . "</td>\n";
  67. print "<td class=\"data\">" . $row['last_found'] . "</td>\n";
  68. if (isset($row['id']) and $row['id'] > 0) {
  69. print "<td class=\"data\"><a href=/admin/users/editauth.php?id=".$row['id'].">" . $row['ip'] . "</a></td>\n";
  70. } else {
  71. print "<td class=\"data\">" . $row['ip'] . "</td>\n";
  72. }
  73. print "<td class=\"data\">" . expand_mac($db_link,mac_dotted($row['mac'])) . "</td>\n";
  74. print "<td class=\"data\">" . $row['dhcp_hostname'] . "</td>\n";
  75. print "<td class=\"data\">" . $row['dns_name'] . "</td>\n";
  76. print "</tr>\n";
  77. }
  78. print "</table>\n";
  79. print_navigation($page_url,$page,$displayed,$count_records,$total);
  80. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/footer.php");
  81. ?>