diff options
Diffstat (limited to 'libs')
-rw-r--r-- | libs/network.php | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/libs/network.php b/libs/network.php index e486fc5..20b5a3a 100644 --- a/libs/network.php +++ b/libs/network.php @@ -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]), ); |