Hallo,
ich möchte gerne die Auslastung des Netzwerkes am IPS-Server etwas im Augen behalten und dafür die Funktion:
<?
print_r(Sys_GetNetworkInfo());
?>
nutzen. Aber diese schmeisst mir nun ein List an Interfacen raus, wovon ich nur eines brauche und zwar diese:
[4] => Array
(
[InterfaceIndex] => 11
[IP] => 192.x. x. x
[MAC] => xxxxxxxxxxxxxx
[Description] => JMicron PCI Express Gigabit Ethernet Adapter
[Speed] => 1000000000
[InPerSec] => 2573
[AverageInPerSec] => 8706
[PeakInPerSec] => 10713160
[InTotal] => 1256086500
[OutPerSec] => 6659
[AverageOutPerSec] => 39567
[PeakOutPerSec] => 21596991
[OutTotal] => 3982396527
)
Meine Frage, wo ich nicht mit klar kommen, wie kann ich die Ausgabe des Sys_Get darauf beschränken.
Am Ende soll ein Script nach folgenden Muster ( hier für Harddisk ) die Werte in Variablen schreiben:
<?php
$parentID = IPS_GetObject($IPS_SELF);
$parentID = $parentID['ParentID'];
$HDDInfo = Sys_GetHardDiskInfo();
for ($i = 0; $i < count($HDDInfo) - 1; $i++)
{
SetValueString(CreateVariableByName($parentID, 'HDD '.$i.' Laufwerksbuchstabe', 3, '~String'), $HDDInfo['HDD'.$i]['LETTER']);
SetValueString(CreateVariableByName($parentID, 'HDD '.$i.' Laufwerksbezeichnung', 3, '~String'), $HDDInfo['HDD'.$i]['LABEL']);
SetValueFloat(CreateVariableByName($parentID, 'HDD '.$i.' Gesamter Speicher', 2), ($HDDInfo['HDD'.$i] ['TOTAL'])/1073741824);
SetValueFloat(CreateVariableByName($parentID, 'HDD '.$i.' Freier Speicher', 2), ($HDDInfo['HDD'.$i]['FREE'])/1073741824);
}
IPS_SetScriptTimer($IPS_SELF, 5*60);
function CreateVariableByName($id, $name, $type, $profile = "")
{
global $IPS_SELF;
$vid = @IPS_GetVariableIDByName($name, $id);
if($vid === false)
{
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF");
if($profile !== "") { IPS_SetVariableCustomProfile($vid, $profile); }
}
return $vid;
}
?>
Kann mir jemand weiterhelfen ?
Danke und Grüsse