source: trunk/system/generators/netwatch_import.php@ 264

Last change on this file since 264 was 264, checked in by george, 15 years ago
  • Opraveno: Import stavu netwatch. * Opraveno: Chybné označení dokončení restartu konfigurace.
File size: 2.4 KB
Line 
1<?php
2
3if(isset($_SERVER['REMOTE_ADDR'])) die();
4include('../../global.php');
5include('../routerboard.php');
6$Path = array('tool', 'netwatch');
7
8$DbResult3 = $Database->query('SELECT * FROM `NetworkSubnet` WHERE `Member` = 0');
9while($Subnet = $DbResult3->fetch_assoc())
10{
11 echo($Subnet['AddressRange'].'/'.$Subnet['Mask'].' on router '.$Subnet['DHCP']."\n");
12 $Routerboard = new Routerboard();
13 $Routerboard->UserName = $Config['MainRouter']['UserName'];
14 $Routerboard->Timeout = $Config['MainRouter']['ConnectTimeout'];
15 $Routerboard->HostName = $Subnet['DHCP'];
16 $List = $Routerboard->ListGetPrint($Path, array('host', 'status'));
17 foreach($List as $Properties)
18 {
19 if(IsAddressInSubnet($Properties['host'], $Subnet['AddressRange'], $Subnet['Mask']))
20 {
21 //echo($Properties['host'].', ');
22 if($Properties['status'] == 'up')
23 {
24 $Online = 1;
25 $Values = array('Online' => $Online, 'LastOnline' => 'NOW()');
26 //echo($Properties['host']." up\n");
27 } else
28 {
29 $Online = 0;
30 $Values = array('Online' => $Online);
31 //echo($Properties['host']." down\n");
32 }
33
34 $DbResult = $Database->update('NetworkInterface', 'LocalIP = "'.$Properties['host'].'"', $Values);
35 if($Online == 1)
36 {
37 $DbResult = $Database->select('NetworkInterface', 'Id', 'LocalIP = "'.$Properties['host'].'"');
38 $DbRow = $DbResult->fetch_assoc();
39 $InterfaceId = $DbRow['Id'];
40 $DbResult2 = $Database->select('NetworkInterfaceStat', '*', '(NetworkInterface="'.$InterfaceId.'") AND (Time = DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))');
41 if($DbResult2->num_rows == 0) $Database->query('REPLACE INTO NetworkInterfaceStat (NetworkInterface, Time) VALUES ("'.$InterfaceId.'", DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))');
42 $Database->query('UPDATE NetworkInterfaceStat SET PingCount = PingCount + 1 WHERE (NetworkInterface="'.$InterfaceId.'") AND (Time = DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))');
43 }
44 }
45 }
46}
47
48// Update device online state
49$DbResult = $Database->select('NetworkDevice', 'Id', 'Used=1');
50while($Device = $DbResult->fetch_assoc())
51{
52 $DbResult2 = $Database->select('NetworkInterface', 'SUM(Online)', 'Device='.$Device['Id']);
53 $DbRow = $DbResult2->fetch_array();
54 if($DbRow['SUM(Online)'] > 0) $Online = 1; else $Online = 0;
55 $Database->update('NetworkDevice', 'Id='.$Device['Id'], array('Online' => $Online));
56}
57
58?>
Note: See TracBrowser for help on using the repository browser.