Project

General

Profile

Download (1.75 KB) Statistics
| Branch: | Tag: | Revision:
1
<?php
2
/*
3
 * ifstats.php
4
 *
5
 * part of pfSense (https://www.pfsense.org)
6
 * Copyright (c) 2004-2018 Rubicon Communications, LLC (Netgate)
7
 * All rights reserved.
8
 *
9
 * Licensed under the Apache License, Version 2.0 (the "License");
10
 * you may not use this file except in compliance with the License.
11
 * You may obtain a copy of the License at
12
 *
13
 * http://www.apache.org/licenses/LICENSE-2.0
14
 *
15
 * Unless required by applicable law or agreed to in writing, software
16
 * distributed under the License is distributed on an "AS IS" BASIS,
17
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
 * See the License for the specific language governing permissions and
19
 * limitations under the License.
20
 */
21

    
22
##|+PRIV
23
##|*IDENT=page-xmlrpcinterfacestats
24
##|*NAME=XMLRPC Interface Stats
25
##|*DESCR=Allow access to the 'XMLRPC Interface Stats' page.
26
##|*MATCH=ifstats.php*
27
##|-PRIV
28

    
29
$nocsrf = true;
30

    
31
require_once('auth_check.inc');
32

    
33
if($_POST['if']) {
34
	$ifs = $_POST['if'];
35
	$realifs = $_POST['realif'];
36

    
37
	$ifarray = explode("|", $ifs);
38
	$realifarray = explode("|", $realifs);
39

    
40
	$temp = gettimeofday();
41
	$timing = (double)$temp["sec"] + (double)$temp["usec"] / 1000000.0;
42
	$obj = [];
43
	$count = 0;
44

    
45
	$i = 0;
46
	for ($i = 0; $i < count($ifarray); $i++) {
47
		$if = $ifarray[$i];
48
		$realif = $realifarray[$i];
49
		if (!$realif) {
50
			$realif = $if; // Need for IPsec case interface.
51
		}
52

    
53
		$ifinfo = pfSense_get_interface_stats($realif);
54

    
55
		$obj[$if] = [];
56

    
57
		$obj[$if][0]['key'] = $if . "in";
58
		$obj[$if][0]['values'] = array($timing, $ifinfo['inbytes']);
59

    
60
		$obj[$if][1]['key'] = $if . "out";
61
		$obj[$if][1]['values'] = array($timing, $ifinfo['outbytes']);
62
	}
63

    
64
	header('Content-Type: application/json');
65
	echo json_encode($obj,JSON_PRETTY_PRINT|JSON_PARTIAL_OUTPUT_ON_ERROR|JSON_NUMERIC_CHECK);
66
}
(69-69/231)