Subversion Repositories ALCASAR

Rev

Rev 3132 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 3132 Rev 3190
1
<?php
1
<?php
2
# Welcome page (sysinfo)
2
# Welcome page (sysinfo)
3
# by Rexy
3
# by Rexy
4
// request database
4
// request database
5
function request ($texte) {
5
function request ($texte) {
6
		$strResult = 0;
6
		$strResult = 0;
7
		// Déclaration des paramètres de connexion
7
		// Déclaration des paramètres de connexion
8
		$host = "localhost";
8
		$host = "localhost";
9
		$DB_USER = "radius";
9
		$DB_USER = "radius";
10
		$DB_RADIUS = "radius";
10
		$DB_RADIUS = "radius";
11
		$radiuspwd = "";
11
		$radiuspwd = "";
12
		// Connexion au serveur
12
		// Connexion au serveur
13
		$mysqli = new mysqli($host, $DB_USER, $radiuspwd, $DB_RADIUS);
13
		$mysqli = new mysqli($host, $DB_USER, $radiuspwd, $DB_RADIUS);
14
		if ($texte == 'user') {$query = "SELECT UserName FROM userinfo";}
14
		if ($texte == 'user') {$query = "SELECT UserName FROM userinfo";}
15
		else { $query = "SELECT GroupName FROM radusergroup GROUP BY GroupName";}
15
		else { $query = "SELECT GroupName FROM radusergroup GROUP BY GroupName";}
16
		$result = $mysqli->query($query);
16
		$result = $mysqli->query($query);
17
		// Recuperation des resultats
17
		// Recuperation des resultats
18
		$strResult = $result->num_rows;
18
		$strResult = $result->num_rows;
19
		// Deconnexion de la base de donnees
19
		// Deconnexion de la base de donnees
20
		$mysqli->close();
20
		$mysqli->close();
21
		return $strResult;
21
		return $strResult;
22
 }
22
 }
23
// router test
23
// router test
24
function routerTest($host,$nic) {
24
function routerTest($host,$nic) {
25
	$out = exec("(sudo arping -I$nic -c1 $host|grep response|cut -d' ' -f2)");
25
	$out = exec("(sudo LANG=en_US.UTF-8 arping -I$nic -c1 $host|grep response|cut -d' ' -f2)");
26
	return ($out == "1") ? true : false;
26
	return ($out == "1") ? true : false;
27
}
27
}
28
 
28
 
29
// Internet test
29
// Internet test
30
function internetTest() {
30
function internetTest() {
31
	$host  = 'www.google.com';
31
	$host  = 'www.google.com';
32
	$host2 = 'www.alcasar.net';
32
	$host2 = 'www.alcasar.net';
33
	$port = 80;
33
	$port = 80;
34
 
34
 
35
	$sock = @fsockopen($host, $port, $errno, $errstr, 2);
35
	$sock = @fsockopen($host, $port, $errno, $errstr, 2);
36
	if ($sock) {
36
	if ($sock) {
37
		fclose($sock);
37
		fclose($sock);
38
		return true;
38
		return true;
39
	}
39
	}
40
 
40
 
41
	$sock = @fsockopen($host2, $port, $errno, $errstr, 2);
41
	$sock = @fsockopen($host2, $port, $errno, $errstr, 2);
42
	if ($sock) {
42
	if ($sock) {
43
		fclose($sock);
43
		fclose($sock);
44
		return true;
44
		return true;
45
	}
45
	}
46
 
46
 
47
	return false;
47
	return false;
48
}
48
}
49
 
49
 
50
// searchString = search for a string in a file
50
// searchString = search for a string in a file
51
function searchString($file, $search_regex){
51
function searchString($file, $search_regex){
52
	$pointeur = fopen($file,"r");
52
	$pointeur = fopen($file,"r");
53
	$result = false;
53
	$result = false;
54
	if ($pointeur)
54
	if ($pointeur)
55
		{
55
		{
56
		while (!feof($pointeur))
56
		while (!feof($pointeur))
57
			{
57
			{
58
				$ligne = fgets($pointeur);
58
				$ligne = fgets($pointeur);
59
				if (preg_match($search_regex, $ligne, $r))
59
				if (preg_match($search_regex, $ligne, $r))
60
				{
60
				{
61
				$result = true;
61
				$result = true;
62
				break;
62
				break;
63
				}
63
				}
64
			}
64
			}
65
		}
65
		}
66
	fclose($pointeur);
66
	fclose($pointeur);
67
	return $result;
67
	return $result;
68
}
68
}
69
 
69
 
70
$Language = 'en';
70
$Language = 'en';
71
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
71
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
72
	$Langue	  = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
72
	$Langue	  = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
73
	$Language = strtolower(substr(chop($Langue[0]), 0, 2));
73
	$Language = strtolower(substr(chop($Langue[0]), 0, 2));
74
	}
74
	}
75
if ($Language === 'fr') {
75
if ($Language === 'fr') {
76
	$locale_time = "fr_FR";
76
	$locale_time = "fr_FR";
77
	$l_title = "Bienvenue dans l'ACC (ALCASAR Control Center)";
77
	$l_title = "Bienvenue dans l'ACC (ALCASAR Control Center)";
78
	$l_internet_link = "Accès Internet";
78
	$l_internet_link = "Accès Internet";
79
	$l_lan = "LAN";
79
	$l_lan = "LAN";
80
	$l_router = "Routeur";
80
	$l_router = "Routeur";
81
	$l_DNS = "DNS";
81
	$l_DNS = "DNS";
82
	$l_enable = "Activé";
82
	$l_enable = "Activé";
83
	$l_disable = "Désactivé";
83
	$l_disable = "Désactivé";
84
	$l_version = "Version instalée";
84
	$l_version = "Version instalée";
85
	$l_available = "Version disponible";
85
	$l_available = "Version disponible";
86
	$l_users = "Nombre d'utilisateurs / connectés";
86
	$l_users = "Nombre d'utilisateurs / connectés";
87
	$l_groups = "Nombre de groupes";
87
	$l_groups = "Nombre de groupes";
88
	$l_system_date = "Date du système";
88
	$l_system_date = "Date du système";
89
}
89
}
90
else if ($Language === 'es') {
90
else if ($Language === 'es') {
91
	$locale_time = "es_ES";
91
	$locale_time = "es_ES";
92
	$l_title = "Bienvenido al ACC (Centro de Control de ALCASAR)";
92
	$l_title = "Bienvenido al ACC (Centro de Control de ALCASAR)";
93
	$l_internet_link = "Acceso a Internet";
93
	$l_internet_link = "Acceso a Internet";
94
	$l_enable = "Activo";
94
	$l_enable = "Activo";
95
	$l_lan = "LAN";
95
	$l_lan = "LAN";
96
	$l_router = "Rúter";
96
	$l_router = "Rúter";
97
	$l_DNS = "DNS";
97
	$l_DNS = "DNS";
98
	$l_disable = "Desactivado";
98
	$l_disable = "Desactivado";
99
	$l_version = "Versión instalada";
99
	$l_version = "Versión instalada";
100
	$l_available = "Versión disponible";
100
	$l_available = "Versión disponible";
101
	$l_users = "Número de usuarios / conectados";
101
	$l_users = "Número de usuarios / conectados";
102
	$l_groups = "Número de grupos";
102
	$l_groups = "Número de grupos";
103
	$l_system_date = "Fecha del sistema";
103
	$l_system_date = "Fecha del sistema";
104
}
104
}
105
else {
105
else {
106
	$locale_time = "en_EN";
106
	$locale_time = "en_EN";
107
	$l_title = "Welcome in ACC (ALCASAR Control Center)";
107
	$l_title = "Welcome in ACC (ALCASAR Control Center)";
108
	$l_internet_link = "Internet access";
108
	$l_internet_link = "Internet access";
109
	$l_lan = "LAN";
109
	$l_lan = "LAN";
110
	$l_router = "Router";
110
	$l_router = "Router";
111
	$l_DNS = "DNS";
111
	$l_DNS = "DNS";
112
	$l_enable = "Enabled";
112
	$l_enable = "Enabled";
113
	$l_disable = "Disabled";
113
	$l_disable = "Disabled";
114
	$l_version = "Installed version";
114
	$l_version = "Installed version";
115
	$l_available = "Available version";
115
	$l_available = "Available version";
116
	$l_users = "Number of users / connected";
116
	$l_users = "Number of users / connected";
117
	$l_groups = "Number of groups";
117
	$l_groups = "Number of groups";
118
	$l_system_date = "System date";
118
	$l_system_date = "System date";
119
}
119
}
120
?>
120
?>
121
<!DOCTYPE html>
121
<!DOCTYPE html>
122
<html>
122
<html>
123
<head>
123
<head>
124
	<link rel="stylesheet" href="/css/acc.css">
124
	<link rel="stylesheet" href="/css/acc.css">
125
</head>
125
</head>
126
<body>	
126
<body>	
127
	<div class="panel">
127
	<div class="panel">
128
		<div class="panel-header"><?= $l_title ?></div>
128
		<div class="panel-header"><?= $l_title ?></div>
129
		<div class ="panel-row">
129
		<div class ="panel-row">
130
			<div class="panel-cell">
130
			<div class="panel-cell">
131
<?
131
<?
132
// Read CONF_FILE
132
// Read CONF_FILE
133
define ('CONF_FILE', '/usr/local/etc/alcasar.conf');
133
define ('CONF_FILE', '/usr/local/etc/alcasar.conf');
134
	$file_conf = fopen(CONF_FILE, 'r');
134
	$file_conf = fopen(CONF_FILE, 'r');
135
	if (!$file_conf) {
135
	if (!$file_conf) {
136
		exit('Error opening the file '.CONF_FILE);}
136
		exit('Error opening the file '.CONF_FILE);}
137
	while (!feof($file_conf)) {
137
	while (!feof($file_conf)) {
138
		$buffer = fgets($file_conf, 4096);
138
		$buffer = fgets($file_conf, 4096);
139
		if ((strpos($buffer, '=') !== false) && (substr($buffer, 0, 1) !== '#')) {
139
		if ((strpos($buffer, '=') !== false) && (substr($buffer, 0, 1) !== '#')) {
140
			$tmp = explode('=', $buffer, 2);
140
			$tmp = explode('=', $buffer, 2);
141
			$conf[trim($tmp[0])] = trim($tmp[1]);
141
			$conf[trim($tmp[0])] = trim($tmp[1]);
142
		}
142
		}
143
	}
143
	}
144
	fclose($file_conf);
144
	fclose($file_conf);
145
// Get current version
145
// Get current version
146
$INSTALLEDVERSION = $conf['VERSION'];
146
$INSTALLEDVERSION = $conf['VERSION'];
147
setlocale (LC_TIME, $locale_time);
147
setlocale (LC_TIME, $locale_time);
148
$SYSTEM_DATE = strftime('%A, %e %B %Y, %T %Z');
148
$SYSTEM_DATE = strftime('%A, %e %B %Y, %T %Z');
149
$nb_users = request ('user');
149
$nb_users = request ('user');
150
$nb_groups  = request ('group');
150
$nb_groups  = request ('group');
151
$nb_online_users = exec ("sudo /usr/sbin/chilli_query list | cut -d\" \" -f5 | grep \"1\" | wc -l");
151
$nb_online_users = exec ("sudo /usr/sbin/chilli_query list | cut -d\" \" -f5 | grep \"1\" | wc -l");
152
 
152
 
153
// LAN Status (Is connected and has IP)
153
// LAN Status (Is connected and has IP)
154
$tmp = file_get_contents("/sys/class/net/".$conf['EXTIF']."/operstate");
154
$tmp = file_get_contents("/sys/class/net/".$conf['EXTIF']."/operstate");
155
if(strcmp($tmp,"up")==1){
155
if(strcmp($tmp,"up")==1){
156
	$lan_status =  $l_lan." "." <img src='/images/state_ok.gif'> ";	
156
	$lan_status =  $l_lan." "." <img src='/images/state_ok.gif'> ";	
157
} else{
157
} else{
158
	$lan_status =  $l_lan." "." <img src='/images/state_error.gif'> ";
158
	$lan_status =  $l_lan." "." <img src='/images/state_error.gif'> ";
159
}
159
}
160
 
160
 
161
// Router(s) status
161
// Router(s) status
162
$mask = strrchr($conf['PUBLIC_IP'],"/");
162
$mask = strrchr($conf['PUBLIC_IP'],"/");
163
if(routerTest($conf['GW'],$conf['EXTIF']) && ($conf['GW'].$mask != $conf['PUBLIC_IP'])){ //test only if ALCASAR is not directly connected to Internet
163
if(routerTest($conf['GW'],$conf['EXTIF']) && ($conf['GW'].$mask != $conf['PUBLIC_IP'])){ //test only if ALCASAR is not directly connected to Internet
164
	$router_status =  $l_router." "." <img src='/images/state_ok.gif'> ";	
164
	$router_status =  $l_router." "." <img src='/images/state_ok.gif'> ";	
165
} else{
165
} else{
166
	$router_status =  $l_router." "." <img src='/images/state_error.gif'> ";
166
	$router_status =  $l_router." "." <img src='/images/state_error.gif'> ";
167
}
167
}
168
if($conf['MULTIWAN'] == 'on'){
168
if($conf['MULTIWAN'] == 'on'){
169
	exec("grep \"^WAN\" " . CONF_FILE . " | wc -l", $nb_gw);
169
	exec("grep \"^WAN\" " . CONF_FILE . " | wc -l", $nb_gw);
170
	for ($i = 1; $i <= $nb_gw[0]; $i++){
170
	for ($i = 1; $i <= $nb_gw[0]; $i++){
171
		$gw="WAN".$i; $tmp=explode(',', $conf[$gw], 2);
171
		$gw="WAN".$i; $tmp=explode(',', $conf[$gw], 2);
172
		$gw_ip=trim(str_replace('"', '', $tmp[0]));
172
		$gw_ip=trim(str_replace('"', '', $tmp[0]));
173
		$nro_router = $i + 1;
173
		$nro_router = $i + 1;
174
		if(routerTest($gw_ip,$conf['EXTIF'])){
174
		if(routerTest($gw_ip,$conf['EXTIF'])){
175
			$router_status = $router_status." $l_router"."$nro_router"." <img src='/images/state_ok.gif'> ";
175
			$router_status = $router_status." $l_router"."$nro_router"." <img src='/images/state_ok.gif'> ";
176
		} else{	
176
		} else{	
177
			$router_status = $router_status." $l_router"."$nro_router"." <img src='/images/state_error.gif'> ";
177
			$router_status = $router_status." $l_router"."$nro_router"." <img src='/images/state_error.gif'> ";
178
		}
178
		}
179
	}
179
	}
180
}
180
}
181
// Internet status
181
// Internet status
182
if ((searchString("/var/www/html/index.php","/network_pb = false/")) && (internetTest())) {
182
if ((searchString("/var/www/html/index.php","/network_pb = false/")) && (internetTest())) {
183
	$internet_status =  $l_DNS." "." <img src='/images/state_ok.gif'> ";
183
	$internet_status =  $l_DNS." "." <img src='/images/state_ok.gif'> ";
184
	$version = dns_get_record("version.alcasar.net",DNS_TXT);
184
	$version = dns_get_record("version.alcasar.net",DNS_TXT);
185
	if (!empty($version)) {
185
	if (!empty($version)) {
186
		$AVAILABLEDVERSION = $version[0]['txt'];
186
		$AVAILABLEDVERSION = $version[0]['txt'];
187
	} else {
187
	} else {
188
		$AVAILABLEDVERSION = "-";
188
		$AVAILABLEDVERSION = "-";
189
	}
189
	}
190
} else {
190
} else {
191
	$internet_status =  $l_DNS." "." <img src='/images/state_error.gif'> ";
191
	$internet_status =  $l_DNS." "." <img src='/images/state_error.gif'> ";
192
	$AVAILABLEDVERSION = "-";
192
	$AVAILABLEDVERSION = "-";
193
}
193
}
194
 
194
 
195
echo $l_internet_link." : ".$lan_status.$router_status.$internet_status."<br>\n";
195
echo $l_internet_link." : ".$lan_status.$router_status.$internet_status."<br>\n";
196
echo $l_version." : ".$INSTALLEDVERSION."<br>\n";
196
echo $l_version." : ".$INSTALLEDVERSION."<br>\n";
197
echo $l_available." : ".$AVAILABLEDVERSION."<br>\n";
197
echo $l_available." : ".$AVAILABLEDVERSION."<br>\n";
198
echo "</div><div class=\"panel-cell\">";
198
echo "</div><div class=\"panel-cell\">";
199
echo $l_users." : ".$nb_users." / ".$nb_online_users."<br>\n";
199
echo $l_users." : ".$nb_users." / ".$nb_online_users."<br>\n";
200
echo $l_groups." : ".$nb_groups."<br>\n";
200
echo $l_groups." : ".$nb_groups."<br>\n";
201
echo $l_system_date." : ".$SYSTEM_DATE."<br>\n";
201
echo $l_system_date." : ".$SYSTEM_DATE."<br>\n";
202
?>
202
?>
203
			</div>
203
			</div>
204
		</div>
204
		</div>
205
	</div>
205
	</div>
206
	<div class="panel">
206
	<div class="panel">
207
		<iframe class="panel-iframe" src="phpsysinfo/">
207
		<iframe class="panel-iframe" src="phpsysinfo/">
208
		</iframe>
208
		</iframe>
209
	</div>
209
	</div>
210
</body>
210
</body>
211
</html>
211
</html>
212
 
212