summaryrefslogtreecommitdiffstats
path: root/usr/local/www/ifstats.php
diff options
context:
space:
mode:
authorScott Ullrich <sullrich@pfsense.org>2006-01-25 23:52:31 +0000
committerScott Ullrich <sullrich@pfsense.org>2006-01-25 23:52:31 +0000
commit19ac33afdc11fb168a8f51ebe87fca08dbd58d00 (patch)
tree8bb22d85c0cfc57f24d10a3dc40fb1a8839364d0 /usr/local/www/ifstats.php
parentcd407459dcad8f618908f396a553688d9d5d9d1a (diff)
downloadpfsense-19ac33afdc11fb168a8f51ebe87fca08dbd58d00.zip
pfsense-19ac33afdc11fb168a8f51ebe87fca08dbd58d00.tar.gz
Port ifstats.c over to php.
Ticket #784
Diffstat (limited to 'usr/local/www/ifstats.php')
-rw-r--r--usr/local/www/ifstats.php79
1 files changed, 79 insertions, 0 deletions
diff --git a/usr/local/www/ifstats.php b/usr/local/www/ifstats.php
new file mode 100644
index 0000000..0ba6e27
--- /dev/null
+++ b/usr/local/www/ifstats.php
@@ -0,0 +1,79 @@
+<?php
+/* $Id$ */
+/*
+ ifstats.php
+ part of pfSense (http://www.pfsense.com)
+
+ Copyright (C) 2005-2006 Scott Ullrich (sullrich@gmail.com)
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+*/
+
+ require("functions.inc");
+ require("config.inc");
+
+ $ifinfo = array();
+
+ $if = $_GET['if'];
+
+ $ifinfo['hwif'] = $config['interfaces'][$if]['if'];
+ if(!$ifinfo['hwif'])
+ $ifinfo['hwif'] = $if;
+ if ($if == "wan")
+ $ifinfo['if'] = get_real_wan_interface();
+ else
+ $ifinfo['if'] = $ifinfo['hwif'];
+
+ /* run netstat to determine link info */
+ $linkinfo = "";
+ unset($linkinfo);
+ exec("/usr/bin/netstat -I " . $ifinfo['hwif'] . " -nWb -f link", $linkinfo);
+ $linkinfo = preg_split("/\s+/", $linkinfo[1]);
+ if (preg_match("/\*$/", $linkinfo[0])) {
+ $ifinfo['status'] = "down";
+ } else {
+ $ifinfo['status'] = "up";
+ }
+
+ if (!strstr($ifinfo['if'],'tun')) {
+ $ifinfo['macaddr'] = $linkinfo[3];
+ $ifinfo['inpkts'] = $linkinfo[4];
+ $ifinfo['inerrs'] = $linkinfo[5];
+ $ifinfo['inbytes'] = $linkinfo[6];
+ $ifinfo['outpkts'] = $linkinfo[7];
+ $ifinfo['outerrs'] = $linkinfo[8];
+ $ifinfo['outbytes'] = $linkinfo[9];
+ $ifinfo['collisions'] = $linkinfo[10];
+ } else {
+ $ifinfo['inpkts'] = $linkinfo[3];
+ $ifinfo['inbytes'] = $linkinfo[5];
+ $ifinfo['outpkts'] = $linkinfo[6];
+ $ifinfo['outbytes'] = $linkinfo[8];
+ }
+
+ $temp = gettimeofday();
+ $timing = $temp["sec"] + $temp["usec"] / 1000000.0;
+
+ echo "$timing|" . $ifinfo['inbytes'] . "|" . $ifinfo['outpkts'] . "\n";
+
+?> \ No newline at end of file
OpenPOWER on IntegriCloud