Поэтому я пытаюсь включить цифровой выход из SNMP-контроллера denkovi в php. Согласно руководствам PHP это должно работать, но это не так. Так вот мой код, если кто-то может мне помочь:
<?php
if( $_GET["host"] && $_GET["port"] && $_GET["com"] && $_GET["oid"] && $_GET["status"])
{
$host = $_GET['host']; //localhost
$ip = gethostbyname($host);
$port = $_GET['port']; //10161
$community = $_GET['com']; //private
$relenr = $_GET['oid']; // 10
$status = $_GET['status']; // 1 (turn it on)
$adress = $ip.":".$port;
$OID = ".1.3.6.1.4.1.19865.1.2.1.{$relenr}.0";
if(snmpset($adress, $community, $OID, 'i', intval($status))== true)
{
echo "\n succes!";
}
else
{
echo "\n error!!";
}
}
?>
попробуйте это, это работает для меня:
$host = "x.x.x.x:y" ;
$community = "private" ;
$oid = ".1.3.6.1.4.1.19865.1.2.2.1.0" ;
$type = "i" ;
$value = 1 ;
if(snmpset($host, $community, $oid , $type , $value)){
echo "ok";
}
else{
echo "error";
}
также вы можете попробовать сделать это с помощью функции exec:
exec('snmpset -v1 -cprivate x.x.x.x:y .1.3.6.1.4.1.19865.1.2.2.1.0 i 1',$output,$exitCode);
print_r($output);//print the result
echo $exitCode;//check if the snmpset return 0 == ok
Других решений пока нет …