source: devel/www/share/sunrisechat/bandwidth.php@ 90

Last change on this file since 90 was 90, checked in by george, 17 years ago

Přidáno: Chybějící soubory nového webu centrály.

  • Property svn:executable set to *
File size: 7.3 KB
Line 
1<?php
2
3Header('Refresh: 10');
4
5include_once('../global.php');
6
7include_once('../style.php');
8ShowHeader('Zatížení linky do internetu','Zatížení internetu');
9
10include_once('../finance/include.php');
11NactiMesicniParametry(0);
12
13include_once('port_table.php');
14
15$HostsStat = array();
16$DbResult = $Database->select('known_hosts','*');
17while($Row = $DbResult->fetch_array())
18{
19 $HostsStat[$Row['IP']] = $Row;
20}
21
22// Read users traffic
23$Total = 0;
24$TotalTrafficUp = 0;
25$TotalTrafficDown = 0;
26$Users = array();
27$DbResult = $Database->select('users', 'id, CONCAT(second_name," ",first_name) as fullname, inet_tarif_now', 'inet=1 ORDER BY fullname');
28while($User = $DbResult->fetch_array())
29{
30 // Read hosts traffic
31 $Hosts = array();
32 $TotalUserTrafficUp = 0;
33 $TotalUserTrafficDown = 0;
34 $DbResult2 = $Database->select('hosts', '*', 'block=0 AND user='.$User['id']);
35 while($Host = $DbResult2->fetch_array())
36 {
37 if($Host['name'] == 'TBC') continue;
38// if(($Row['block']==0) and ($Row['online']==1))
39// {
40 //echo($Row['IP'].',');
41 if($Host['vpn'] == 1) $Host['IP'] = ToVpnIp($Host);
42
43 $Host['traffic_down'] = $HostsStat[$Host['IP']]['traffic_avg_down'];
44 $Host['traffic_up'] = $HostsStat[$Host['IP']]['traffic_avg_up'];
45
46 if($Host['name'] == 'CENTRALA') $Host['IP'] = $Host['external_ip'];
47 if(!array_key_exists($Host['IP'], $HostsStat)) $HostsStat[$Host['IP']] = array('traffic_avg_down' => 0, 'traffic_avg_up' => 0);
48 $TrafficDown = $HostsStat[$Host['IP']]['traffic_avg_down'];
49 $TrafficUp = $HostsStat[$Host['IP']]['traffic_avg_up'];
50 $TotalUserTrafficUp = $TotalUserTrafficUp + $TrafficUp;
51 $TotalUserTrafficDown = $TotalUserTrafficDown + $TrafficDown;
52
53 $DbResult3 = $Database->select('known_hosts_ports', '*', 'host="'.$Host['IP'].'"');
54 while($Port = $DbResult3->fetch_array())
55 {
56 $Host['ports'][] = $Port;
57 }
58 if($Host['online'] == 1) $Hosts[] = $Host;
59 //echo($Row['IP'].' '.$Row['name'].'<br>');
60 }
61 /*
62 if($User['id'] == 46) // System servers
63 {
64 // Add Centrala to the list
65 $Host = array('IP' => '212.111.16.94', 'name' => 'CENTRALA');
66 $Hosts[] = $Host;
67 $TrafficDown = $HostsStat[$Host['IP']]['traffic_avg_down'];
68 $TrafficUp = $HostsStat[$Host['IP']]['traffic_avg_up'];
69 $TotalUserTrafficUp = $TotalUserTrafficUp + $TrafficUp;
70 $TotalUserTrafficDown = $TotalUserTrafficDown + $TrafficDown;
71
72 // Add game-server to list
73 $Host = array('IP' => '192.168.5.2', 'name' => 'GAME-SERVER');
74 $Hosts[] = $Host;
75 $TrafficDown = $HostsStat[$Host['IP']]['traffic_avg_down'];
76 $TrafficUp = $HostsStat[$Host['IP']]['traffic_avg_up'];
77 $TotalUserTrafficUp = $TotalUserTrafficUp + $TrafficUp;
78 $TotalUserTrafficDown = $TotalUserTrafficDown + $TrafficDown;
79
80 // Add game-server to list
81 $Host = array('IP' => '192.168.5.2', 'name' => 'GAME-SERVER');
82 $Hosts[] = $Host;
83 $TrafficDown = $HostsStat[$Host['IP']]['traffic_avg_down'];
84 $TrafficUp = $HostsStat[$Host['IP']]['traffic_avg_up'];
85 $TotalUserTrafficUp = $TotalUserTrafficUp + $TrafficUp;
86 $TotalUserTrafficDown = $TotalUserTrafficDown + $TrafficDown;
87 }
88 */
89 $User['traffic_down'] = $TotalUserTrafficDown;
90 $User['traffic_up'] = $TotalUserTrafficUp;
91 $TotalTrafficUp = $TotalTrafficUp + $TotalUserTrafficUp;
92 $TotalTrafficDown = $TotalTrafficDown + $TotalUserTrafficDown;
93 $User['hosts'] = $Hosts;
94 $Users[] = $User;
95}
96
97$Total += $TotalTrafficUp + $TotalTrafficDown;
98
99
100// Compute remaining traffic
101$HostsStat['ostatni'] = array('traffic_avg_down' => ($HostsStat['0.0.0.0/0']['traffic_avg_down'] - $TotalTrafficDown),
102 'traffic_avg_up' => ($HostsStat['0.0.0.0/0']['traffic_avg_up'] - $TotalTrafficUp));
103$User = array('fullname' => 'Neznámé a internet zdarma', 'traffic_down' => $HostsStat['ostatni']['traffic_avg_down'],
104 'traffic_up' => $HostsStat['ostatni']['traffic_avg_up'], 'hosts' => array(), 'id' => 0);
105$User['inet_tarif_now'] = 3;
106$Users[] = $User;
107
108if(array_key_exists('id', $_GET) and array_key_exists('set', $_GET))
109{
110 if(!array_key_exists('user'.$_GET['id'], $_SESSION)) $_SESSION['user'.$_GET['id']] = 0;
111 $_SESSION['user'.$_GET['id']] = $_GET['set'];
112}
113
114// Show table
115echo('Informace o zatíľení internetu jednotlivými členy sítě:<br>
116<table style="font-size: small;" cellspacing="0" border="1"><tr><th>Jméno člena</th><th>Příchozí [B/s]</th><th>Odchozí [B/s]</th><th>Podíl [%]</th><th>Limit [B/s]</th></tr>');
117$TrafficDownT = 0;
118$TrafficUpT = 0;
119foreach($Users as $User)
120{
121 if(!array_key_exists('user'.$User['id'], $_SESSION)) $_SESSION['user'.$User['id']] = 0;
122 $TrafficDown = $User['traffic_down'];
123 $TrafficUp = $User['traffic_up'];
124 if($Total > 0) $Percent = round(($TrafficUp+$TrafficDown)/$Total*100);
125 else $Percent = 0;
126 $SpeedLimit = round($Tarify[$User['inet_tarif_now']]['max_speed'] /8);
127 echo('<tr><td><a href="?id='.$User['id'].'&amp;set='.(1 - ($_SESSION['user'.$User['id']] * 1)).'">'.$User['fullname'].'</a></td><td align="right">&nbsp;'.$TrafficDown.'</td><td align="right">&nbsp;'.$TrafficUp.'</td><td align="right">'.$Percent.'</td><td align="right">'.$SpeedLimit."</td></tr>\n");
128 $TrafficDownT += $TrafficDown;
129 $TrafficUpT += $TrafficUp;
130 $Visible = 'display: none; ';
131 if(array_key_exists('user'.$User['id'], $_SESSION))
132 {
133 if($_SESSION['user'.$User['id']] == 1) $Visible = '';
134 }
135 foreach($User['hosts'] as $Host)
136 {
137 $TrafficDown = $Host['traffic_down'];
138 $TrafficUp = $Host['traffic_up'];
139 if($Total > 0) $Percent = round(($TrafficUp+$TrafficDown)/$Total*100);
140 else $Percent = 0;
141 $TrafficDown = $HostsStat[$Host['IP']]['traffic_avg_down'];
142 $TrafficUp = $HostsStat[$Host['IP']]['traffic_avg_up'];
143 echo('<tr style="'.$Visible.'font-size: 10px"><td>&nbsp;&nbsp;'.$Host['name'].'</td><td align="right">&nbsp;'.$TrafficDown.'</td><td align="right">&nbsp;'.$TrafficUp.'</td><td align="right">'.$Percent.'</td><td align="right">'.$SpeedLimit."</td></tr>\n");
144
145 if(0) //array_key_exists('ports', $Host))
146 {
147 $TrafficDownSum = $Host['traffic_down'];
148 $TrafficUpSum = $Host['traffic_up'];
149 foreach($Host['ports'] as $Port)
150 {
151 $TrafficDown = $Port['down'];
152 $TrafficUp = $Port['up'];
153 $TrafficDownSum -= $TrafficDown;
154 $TrafficUpSum -= $TrafficUp;
155 if($Total > 0) $Percent = round(($TrafficUp + $TrafficDown) / $Total*100);
156 else $Percent = 0;
157 echo('<tr style="'.$Visible.'font-size: 9px"><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.PortNumberToName($Port['port']).'('.$Port['port'].')</td><td align="right">&nbsp;'.$TrafficDown.'</td><td align="right">&nbsp;'.$TrafficUp.'</td><td align="right">'.$Percent.'</td><td align="right">'.$SpeedLimit."</td></tr>\n");
158 }
159 if($Total > 0) $Percent = round(($TrafficUpSum + $TrafficDownSum) / $Total*100);
160 else $Percent = 0;
161 echo('<tr style="'.$Visible.'font-size: 9px"><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ostatní</td><td align="right">&nbsp;'.$TrafficDownSum.'</td><td align="right">&nbsp;'.$TrafficUpSum.'</td><td align="right">'.$Percent.'</td><td align="right">'.$SpeedLimit."</td></tr>\n");
162 }
163 }
164}
165echo('<tr><td><strong>Celkem</strong></td><td align="right"><strong>&nbsp;'.$TrafficDownT.'</strong></td><td align="right"><strong>&nbsp;'.$TrafficUpT.'</strong></td><td align="right"><strong>100</strong></td><td align="right">&nbsp;</td></tr>'."\n");
166
167
168echo('</table><br>');
169echo('Stránka se obnovuje po 10 sekundách<br>');
170ShowFooter();
171
172?>
Note: See TracBrowser for help on using the repository browser.