Dmitriev Roman 5 лет назад
Родитель
Сommit
be71c03363
4 измененных файлов с 23 добавлено и 10 удалено
  1. 14 8
      html/admin/logs/ip.php
  2. 1 1
      html/admin/logs/mac.php
  3. 1 1
      html/admin/users/editauth.php
  4. 7 0
      html/inc/common.php

+ 14 - 8
html/admin/logs/ip.php

@@ -14,17 +14,22 @@ $_SESSION[$page_url]['ip']=$f_ip;
 print_log_submenu($page_url);
 
 $ip_where = '';
-if (isset($f_ip) and $f_ip != '') { $ip_where = " and ip_int=inet_aton('" . $f_ip . "') "; }
+if (!empty($f_ip)) {
+    if (checkValidIp($f_ip)) { $ip_where = " and ip_int=inet_aton('" . $f_ip . "') "; }
+    if (checkValidMac($f_ip)) { $ip_where = " and mac='" . mac_dotted($f_ip) . "'  "; }
+    }
 ?>
 
 <div id="cont">
 <br>
+Здесь находится история всех работавших когда-то маков/ip.<br>
+Если нужно найти место подключения - смотреть приключения маков!<br>
 <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
-	Начало:&nbsp<input type="date" name="date_start" value="<?php echo $date1; ?>" />
-  Конец:&nbsp<input type="date"	name="date_stop" value="<?php echo $date2; ?>" />
-  ip:&nbsp<input type="text" name="ip" value="<?php echo $f_ip; ?>" />
-  Отображать:<?php print_row_at_pages('rows',$displayed); ?>
-  <input type="submit" value="OK">
+Начало:&nbsp<input type="date" name="date_start" value="<?php echo $date1; ?>" />
+Конец:&nbsp<input type="date"	name="date_stop" value="<?php echo $date2; ?>" />
+ip or 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})$"/>
+Отображать:<?php print_row_at_pages('rows',$displayed); ?>
+<input type="submit" value="OK">
 </form>
 
 <?php
@@ -43,7 +48,7 @@ print_navigation($page_url,$page,$displayed,$count_records[0],$total);
 				<td class="data"><b>id</b></td>
 				<td class="data" width=150><b>Время создания</b></td>
 				<td class="data" width=150><b>Последняя работа</b></td>
-				<td class="data"><b>IP</b></td>
+				<td class="data"><b>IP/MAC</b></td>
 				<td class="data"><b>mac</b></td>
 				<td class="data"><b>dhcp hostname</b></td>
 				<td class="data"><b>dns name</b></td>
@@ -51,7 +56,8 @@ print_navigation($page_url,$page,$displayed,$count_records[0],$total);
 
 <?php
 
-$sSQL = "SELECT timestamp,mac,ip,dns_name,dhcp_hostname,id,last_found FROM User_auth WHERE `timestamp`>='$date1' AND `timestamp`<'$date2' $ip_where ORDER BY timestamp DESC LIMIT $start,$displayed";
+$sSQL = "SELECT * FROM User_auth WHERE `timestamp`>='$date1' AND `timestamp`<'$date2' $ip_where ORDER BY timestamp DESC LIMIT $start,$displayed";
+
 $iplog = get_records_sql($db_link, $sSQL);
 foreach ($iplog as $row) {
     print "<tr align=center align=center class=\"tr1\" onmouseover=\"className='tr2'\" onmouseout=\"className='tr1'\">\n";

+ 1 - 1
html/admin/logs/mac.php

@@ -21,7 +21,7 @@ print_log_submenu($page_url);
 <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
 Начало:&nbsp<input type="date" name="date_start" value="<?php echo $date1; ?>" />
 Конец:&nbsp<input type="date"	name="date_stop" value="<?php echo $date2; ?>" />
-Mac:&nbsp<input type="text" name="mac" value="<?php echo $f_mac; ?>" />
+Mac:&nbsp<input type="text" name="mac" value="<?php echo mac_dotted($f_mac); ?>" pattern="^([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}$" />
 Отображать:<?php print_row_at_pages('rows',$displayed); ?>
 <input type="submit" value="OK">
 </form>

+ 1 - 1
html/admin/users/editauth.php

@@ -216,7 +216,7 @@ print "<b> Адрес доступа пользователя <a href=/admin/use
 <td></td>
 <tr>
 <td><input type="text" name="f_ip" value="<? echo $auth_info['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])$"></td>
-<td><input type="text" name="f_mac" value="<? echo $auth_info['mac']; ?>"></td>
+<td><input type="text" name="f_mac" value="<? echo $auth_info['mac']; ?>" pattern="^([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}$"></td>
 <td><input type="text" name="f_acl" value="<? echo $auth_info['dhcp_acl']; ?>"></td>
 <td><?php print_qa_select('f_dhcp', $auth_info['dhcp']); ?></td>
 <td><?php print_group_select($db_link, 'f_group_id', $auth_info['filter_group_id']); ?> </td>

+ 7 - 0
html/inc/common.php

@@ -7,6 +7,7 @@ $config["init"]=0;
 
 #ValidIpAddressRegex = "^(([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])$";
 #ValidHostnameRegex = "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$";
+#$ValidMacAddressRegex="^([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}$";
 
 $port_status_oid = '.1.3.6.1.2.1.2.2.1.8.';
 $port_admin_status_oid = '.1.3.6.1.2.1.2.2.1.7.';
@@ -175,6 +176,12 @@ function checkValidIp($cidr)
     return $return;
 }
 
+function checkValidMac($mac) {
+$ValidMacAddressRegex="/^([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}$/";
+if (! preg_match($ValidMacAddressRegex, $mac)) { $return = FALSE; } else { $return = TRUE; }
+return $return;
+}
+
 function checkValidHostname($dnsname)
 {
 $host_pattern="/^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/";