Skip to content

Commit

Permalink
Network : fix for ifconfig command and for getting network rates
Browse files Browse the repository at this point in the history
  • Loading branch information
shevabam committed Nov 11, 2014
1 parent f71fb5b commit 258e0ed
Showing 1 changed file with 23 additions and 8 deletions.
31 changes: 23 additions & 8 deletions libs/network.php
Original file line number Diff line number Diff line change
@@ -1,25 +1,40 @@
<?php
require 'Utils/Misc.class.php';

$datas = array();
$datas = array();
$network = array();

if (!(exec('/sbin/ifconfig |awk -F \'[/ |: ]\' \'{print $1}\' |sed -e \'/^$/d\'', $getInterfaces)))
$ifconfig = trim(shell_exec('which ifconfig'));

if (!(exec($ifconfig.' |awk -F \'[/ |: ]\' \'{print $1}\' |sed -e \'/^$/d\'', $getInterfaces)))
{
$datas[] = array('interface' => 'N.A', 'ip' => 'N.A');
}
else
{
exec('/sbin/ifconfig | awk \'/inet / {print $2}\' | cut -d \':\' -f2', $getIps);
foreach ($getInterfaces as $name)
{
$ip = null;
exec($ifconfig.' '.$name.' | awk \'/inet / {print $2}\' | cut -d \':\' -f2', $ip);

if (!isset($ip[0]))
$ip[0] = '';

$network[] = array(
'name' => $name,
'ip' => $ip[0],
);
}

foreach ($getInterfaces as $key => $interface)
foreach ($network as $interface)
{
// Get transmit and receive datas by interface
exec('cat /sys/class/net/'.$interface.'/statistics/tx_bytes', $getBandwidth_tx);
exec('cat /sys/class/net/'.$interface.'/statistics/rx_bytes', $getBandwidth_rx);
exec('cat /sys/class/net/'.$interface['name'].'/statistics/tx_bytes', $getBandwidth_tx);
exec('cat /sys/class/net/'.$interface['name'].'/statistics/rx_bytes', $getBandwidth_rx);

$datas[] = array(
'interface' => $interface,
'ip' => $getIps[$key],
'interface' => $interface['name'],
'ip' => $interface['ip'],
'transmit' => Misc::getSize($getBandwidth_tx[0]),
'receive' => Misc::getSize($getBandwidth_rx[0]),
);
Expand Down

0 comments on commit 258e0ed

Please sign in to comment.