本文整理汇总了PHP中snmprealwalk函数的典型用法代码示例。如果您正苦于以下问题:PHP snmprealwalk函数的具体用法?PHP snmprealwalk怎么用?PHP snmprealwalk使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了snmprealwalk函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: MACtoIP
function MACtoIP($SearchMAC, $IP, $ReadCommunity)
{
$walk = snmprealwalk($IP, $ReadCommunity, ".1.3.6.1.2.1.3.1.1.2");
if ($walk) {
$i = 0;
foreach ($walk as $entry) {
$oid = array_keys($walk);
$value = $entry;
$oid = $oid[$i];
if (stristr("atPhysAddress", $oid[0])) {
strtok($oid, "atPhysAddress");
$tmp = strtok("atPhysAddress");
$tmp = substr($tmp, 5);
}
$IP = $tmp;
$MAC = $value;
if ($MAC = $SearchMAC) {
break;
} else {
unset($MAC);
unset($IP);
}
$i++;
}
return $IP;
}
// END if( $walk )
}
示例2: Walk
function Walk($ip, $ver, $cm, $oid, $t = 1000000, $r = 2)
{
global $debug, $comms;
if ($ver == 3 and $comms[$cm]['pprot']) {
if ($debug) {
echo "<div class=\"textpad noti \">snmpwalk -v3 -c{$cm} " . $comms[$cm]['aprot'] . "/" . $comms[$cm]['pprot'] . " {$ip} {$oid} ({$t} usec * {$r})</div>";
}
return snmp3_real_walk($ip, $cm, 'authPriv', $comms[$cm]['aprot'], $comms[$cm]['apass'], $comms[$cm]['pprot'], $comms[$cm]['ppass'], ".{$oid}", $t);
} elseif ($ver == 3 and $comms[$cm]['aprot']) {
if ($debug) {
echo "<div class=\"textpad noti \">snmpwalk -v3 -c{$cm} " . $comms[$cm]['aprot'] . " {$ip} {$oid} ({$t} usec * {$r})</div>";
}
return snmp3_real_walk($ip, $cm, 'authNoPriv', $comms[$cm]['aprot'], $comms[$cm]['apass'], 'DES', '', ".{$oid}", $t);
} elseif ($ver == 2) {
if ($debug) {
echo "<div class=\"textpad noti \">snmpwalk -v2c -c{$cm} {$ip} {$oid} ({$t} usec * {$r})</div>";
}
return snmp2_real_walk($ip, $cm, ".{$oid}", $t);
} else {
if ($debug) {
echo "<div class=\"textpad noti \">snmpwalk -v1 -c{$cm} {$ip} {$oid} ({$t} usec * {$r})</div>";
}
return snmprealwalk($ip, $cm, ".{$oid}", $t);
}
}
示例3: walk
function walk($oid)
{
// We're using realwalk so that we can build iterators with map_oids(), see:
// walk [0] => eth0
// realwalk [IF-MIB::ifDescr.2] => eth0
if ($this->version == "1") {
$snmp_result = snmprealwalk($this->ip, $this->community, $oid);
} else {
if ($this->version == "2c") {
$snmp_result = snmp2_real_walk($this->ip, $this->community, $oid);
}
}
$result = $this->clear_snmp_string($snmp_result);
return $result;
}
示例4: walk
static function walk($host, $object_id, $cache_ttl = null)
{
if ($cache_ttl) {
$cache_var = str_replace('.', '_', $host->ip . $object_id);
$cache = new CacheAPC();
$resultCache = $cache->load($cache_var);
if ($resultCache !== null) {
return $resultCache;
}
}
snmp_set_oid_output_format(self::$oid_format);
$snmp = $host->snmpTemplate;
if ($snmp instanceof SnmpTemplate) {
switch ($snmp->version) {
case "1":
$result = @snmprealwalk($host->ip, $snmp->community, $object_id, $snmp->timeout, $snmp->retries);
break;
case "2":
case "2c":
$result = @snmp2_real_walk($host->ip, $snmp->community, $object_id, $snmp->timeout, $snmp->retries);
break;
case "3":
$result = @snmp3_real_walk($host->ip, $snmp->security_name, $snmp->security_level, $snmp->auth_protocol, $snmp->auth_passphrase, $snmp->priv_protocol, $snmp->priv_passphrase, $object_id, $snmp->timeout, $snmp->retries);
break;
default:
throw new Exception('SNMP Template not implemented yet');
}
}
if (is_array($result)) {
if ($cache_var && $cache_ttl) {
$cache->save($cache_var, $result, $cache_ttl);
}
return $result;
} else {
//throw new Exception("Sem resposta SNMP");
return array();
}
}
示例5: net_dev_show
function net_dev_show($type, $name, $port, $vg_id)
{
$row = $GLOBALS['monkdb']->query('select * from net_devs where type="' . $type . '" and name="' . $name . '"')->fetch_assoc();
$iprow = $GLOBALS['billdb']->query('select segment from staff where vg_id=' . $vg_id)->fetch_assoc();
if ($row['type'] == 'switch') {
if ($row['snmp_version'] == '2c') {
snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
$ifOperStatus = snmp2_get($row['mgmt_ip'], 'public', 'RFC1213-MIB::ifOperStatus.' . $port);
switch ($ifOperStatus) {
case '1':
echo 'port - <b>up</b><br/>';
break;
case '2':
echo 'port - <b>down</b><br/>';
break;
}
$ip_mac_vlan = ip_mac_vlan(long2ip($iprow['segment']));
if ($ip_mac_vlan) {
echo 'vlan - <b>' . $ip_mac_vlan['vlan'] . '</b><br/>';
echo 'ip - <b>' . $ip_mac_vlan['ip'] . '</b><br/>';
echo 'mac - <b>' . $ip_mac_vlan['mac'] . '</b><br/>';
}
$snmp_mac_table = snmp2_real_walk($row['mgmt_ip'], 'public', '1.3.6.1.2.1.17.7.1.2.2.1.2');
foreach ($snmp_mac_table as $key => $row1) {
$arr = explode('2.17.7.1.2.2.1.2.', $key);
$arr = explode('.', $arr[1]);
if ($row1 == $port) {
echo 'SNMP data - <b>' . dechex($arr[1]) . ':' . dechex($arr[2]) . ':' . dechex($arr[3]) . ':' . dechex($arr[4]) . ':' . dechex($arr[5]) . ':' . dechex($arr[6]) . ' , vlan=' . $arr[0] . ' , port=' . $row1 . "</b><br/>\n";
}
}
}
if ($row['snmp_version'] == '1') {
snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
$ifOperStatus = snmpget($row['mgmt_ip'], 'public', 'IF-MIB::ifOperStatus.' . $port);
switch ($ifOperStatus) {
case '1':
echo 'port - <b>up</b><br/>';
break;
case '2':
echo 'port - <b>down</b><br/>';
break;
}
$ip_mac_vlan = ip_mac_vlan(long2ip($iprow['segment']));
if ($ip_mac_vlan) {
echo 'vlan - <b>' . $ip_mac_vlan['vlan'] . '</b><br/>';
echo 'ip - <b>' . $ip_mac_vlan['ip'] . '</b><br/>';
echo 'mac - <b>' . $ip_mac_vlan['mac'] . '</b><br/>';
}
}
}
if ($row['type'] == 'dslam') {
if ($row['snmp_version'] == '2c') {
snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
$port = $port + $row['if_index_shift'];
$ifOperStatus = snmp2_get($row['mgmt_ip'], 'public', 'IF-MIB::ifOperStatus.' . $port);
switch ($ifOperStatus) {
case '1':
echo 'port - <b>up</b><br/>';
break;
case '2':
echo 'port - <b>down</b><br/>';
break;
}
if ($ifOperStatus == '1') {
$ip_mac_vlan = ip_mac_vlan(long2ip($iprow['segment']));
if ($ip_mac_vlan) {
echo 'vlan - <b>' . $ip_mac_vlan['vlan'] . '</b><br/>';
echo 'ip - <b>' . $ip_mac_vlan['ip'] . '</b><br/>';
echo 'mac - <b>' . $ip_mac_vlan['mac'] . '</b><br/>';
$snmp_mac_table = snmprealwalk($row['mgmt_ip'], 'public', '1.3.6.1.2.1.17.7.1.2.2.1.2');
foreach ($snmp_mac_table as $key => $row1) {
$arr = explode('2.17.7.1.2.2.1.2.', $key);
$arr = explode('.', $arr[1]);
if ($row1 == $port - $row['if_index_shift']) {
echo 'SNMP data - <b>' . dechex($arr[1]) . ':' . dechex($arr[2]) . ':' . dechex($arr[3]) . ':' . dechex($arr[4]) . ':' . dechex($arr[5]) . ':' . dechex($arr[6]) . ' , vlan=' . $arr[0] . ' , port=' . $row1 . "</b><br/>\n";
}
}
echo '<hr/>';
}
echo '<br/>';
echo 'ATU-C: Current SNR Margin - <b>' . snmp2_get($row['mgmt_ip'], 'public', 'SNMPv2-SMI::transmission.94.1.1.2.1.4.' . $port) . '</b> db/10<br/>';
echo 'ATU-C: Current attentuation - <b>' . snmp2_get($row['mgmt_ip'], 'public', 'SNMPv2-SMI::transmission.94.1.1.2.1.5.' . $port) . '</b> db/10<br/>';
echo 'ATU-C: Current output power - <b>' . snmp2_get($row['mgmt_ip'], 'public', 'SNMPv2-SMI::transmission.94.1.1.2.1.7.' . $port) . '</b> db/10<br/>';
echo 'ATU-C: Speed - <b>' . snmp2_get($row['mgmt_ip'], 'public', 'SNMPv2-SMI::transmission.94.1.1.2.1.8.' . $port) . '</b> bps<br/>';
echo '<br/>';
echo 'ATU-R: Current SNR Margin - <b>' . snmp2_get($row['mgmt_ip'], 'public', 'SNMPv2-SMI::transmission.94.1.1.3.1.4.' . $port) . '</b> db/10<br/>';
echo 'ATU-R: Current attentuation - <b>' . snmp2_get($row['mgmt_ip'], 'public', 'SNMPv2-SMI::transmission.94.1.1.3.1.5.' . $port) . '</b> db/10<br/>';
echo 'ATU-R: Current output power - <b>' . snmp2_get($row['mgmt_ip'], 'public', 'SNMPv2-SMI::transmission.94.1.1.3.1.7.' . $port) . '</b> db/10<br/>';
echo 'ATU-R: Speed - <b>' . snmp2_get($row['mgmt_ip'], 'public', 'SNMPv2-SMI::transmission.94.1.1.3.1.8.' . $port) . '</b> bps<br/>';
}
if ($_SESSION['username'] == 'nalcheg' or $_SESSION['username'] == 'den' or $_SESSION['username'] == 'andrey') {
echo '<hr/><b><a href="#" onclick="dslam_port_restart(\'' . $row['mgmt_ip'] . '\',' . $port . ',' . $row['if_index_shift'] . ')">RESTART PORT</a></b>';
}
}
}
}
示例6: ticket_post
$subject = $message;
ticket_post($smtp_email, $smtp_email, "28", "{$subject}", "{$message}", '1');
}
}
}
} else {
if ("Memory Utilization" == $param_name) {
//end of else if dsk utilization
snmp_set_quick_print(1);
$snmp_result = '';
$memInfo = "hrStorageDescr";
if (strtolower($snmp_version) == 'v3') {
//SNMP V3 is used
$snmp_result = @snmp3_real_walk($hostname, $v3_user, "authNoPriv", "MD5", $v3_pwd, "DES", "", $memInfo, $timeout, $count);
} else {
$snmp_result = @snmprealwalk($hostname, $community_string, $memInfo, $timeout, $count);
}
if (count($snmp_result) < 1) {
echo "Unable to query server {$hostname} for Memory Utilization";
}
$mem_pct_used = 0;
foreach ($snmp_result as $oid => $val) {
if ("/" == substr($val, 0, 1)) {
//ignore
} else {
$index = substr($oid, strrpos($oid, ".") + 1);
$used = '';
$total = '';
if (strtolower($snmp_version) == 'v3') {
//SNMP V3 is used
$used = @snmp3_get($hostname, $v3_user, "authNoPriv", "MD5", $v3_pwd, "DES", "", "hrStorageUsed.{$index}", $timeout, $count);
示例7: cacti_snmp_walk
function cacti_snmp_walk($hostname, $community, $oid, $version, $username, $password, $auth_proto, $priv_pass, $priv_proto, $context, $port = 161, $timeout = 500, $retries = 0, $max_oids = 10, $environ = SNMP_POLLER)
{
global $config, $banned_snmp_strings;
$snmp_oid_included = true;
$snmp_auth = '';
$snmp_array = array();
$temp_array = array();
/* determine default retries */
if ($retries == 0 || !is_numeric($retries)) {
$retries = read_config_option("snmp_retries");
if ($retries == "") {
$retries = 3;
}
}
/* determine default max_oids */
if ($max_oids == 0 || !is_numeric($max_oids)) {
$max_oids = read_config_option("max_get_size");
if ($max_oids == "") {
$max_oids = 10;
}
}
/* do not attempt to poll invalid combinations */
if ($version == 0 || !is_numeric($version) || !is_numeric($max_oids) || !is_numeric($port) || !is_numeric($retries) || !is_numeric($timeout) || $community == "" && $version != 3) {
return array();
}
$path_snmpbulkwalk = read_config_option("path_snmpbulkwalk");
if (snmp_get_method($version) == SNMP_METHOD_PHP && (!strlen($context) || $version != 3) && ($version == 1 || version_compare(phpversion(), "5.1") >= 0 || !file_exists($path_snmpbulkwalk))) {
/* make sure snmp* is verbose so we can see what types of data
we are getting back */
/* force php to return numeric oid's */
if (function_exists("snmp_set_oid_numeric_print")) {
snmp_set_oid_numeric_print(TRUE);
}
if (function_exists("snmprealwalk")) {
$snmp_oid_included = false;
}
snmp_set_quick_print(0);
if ($version == "1") {
$temp_array = @snmprealwalk("{$hostname}:{$port}", "{$community}", "{$oid}", $timeout * 1000, $retries);
} elseif ($version == "2") {
$temp_array = @snmp2_real_walk("{$hostname}:{$port}", "{$community}", "{$oid}", $timeout * 1000, $retries);
} else {
if ($priv_proto == "[None]" || $priv_pass == '') {
$proto = "authNoPriv";
$priv_proto = "";
} else {
$proto = "authPriv";
}
$temp_array = @snmp3_real_walk("{$hostname}:{$port}", "{$username}", $proto, $auth_proto, "{$password}", $priv_proto, "{$priv_pass}", "{$oid}", $timeout * 1000, $retries);
}
if ($temp_array === false) {
cacti_log("WARNING: SNMP Walk Timeout for Host:'{$hostname}', and OID:'{$oid}'", false);
}
/* check for bad entries */
if (is_array($temp_array) && sizeof($temp_array)) {
foreach ($temp_array as $key => $value) {
foreach ($banned_snmp_strings as $item) {
if (strstr($value, $item) != "") {
unset($temp_array[$key]);
continue 2;
}
}
}
}
$o = 0;
for (@reset($temp_array); $i = @key($temp_array); next($temp_array)) {
if ($temp_array[$i] != "NULL") {
$snmp_array[$o]["oid"] = preg_replace("/^\\./", "", $i);
$snmp_array[$o]["value"] = format_snmp_string($temp_array[$i], $snmp_oid_included);
}
$o++;
}
} else {
/* ucd/net snmp want the timeout in seconds */
$timeout = ceil($timeout / 1000);
if ($version == "1") {
$snmp_auth = read_config_option("snmp_version") == "ucd-snmp" ? snmp_escape_string($community) : "-c " . snmp_escape_string($community);
/* v1/v2 - community string */
} elseif ($version == "2") {
$snmp_auth = read_config_option("snmp_version") == "ucd-snmp" ? snmp_escape_string($community) : "-c " . snmp_escape_string($community);
/* v1/v2 - community string */
$version = "2c";
/* ucd/net snmp prefers this over '2' */
} elseif ($version == "3") {
if ($priv_proto == "[None]" || $priv_pass == '') {
$proto = "authNoPriv";
$priv_proto = "";
} else {
$proto = "authPriv";
}
if (strlen($priv_pass)) {
$priv_pass = "-X " . snmp_escape_string($priv_pass) . " -x " . snmp_escape_string($priv_proto);
} else {
$priv_pass = "";
}
if (strlen($context)) {
$context = "-n " . snmp_escape_string($context);
} else {
$context = "";
}
//.........这里部分代码省略.........
示例8: cacti_snmp_walk
function cacti_snmp_walk($hostname, $community, $oid, $version, $username, $password, $port = 161, $timeout = 500, $environ = SNMP_POLLER) {
global $config;
$snmp_array = array();
$temp_array = array();
/* determine default retries */
$retries = read_config_option("snmp_retries");
if ($retries == "") $retries = 3;
if (snmp_get_method($version) == SNMP_METHOD_PHP) {
/* make sure snmp* is verbose so we can see what types of data
we are getting back */
snmp_set_quick_print(0);
if (function_exists("snmp_set_valueretrieval")) {
snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
}
if ($version == "1") {
$temp_array = @snmprealwalk("$hostname:$port", $community, $oid, ($timeout * 1000), $retries);
} else {
$temp_array = @snmp2_real_walk("$hostname:$port", $community, $oid, ($timeout * 1000), $retries);
}
$o = 0;
for (@reset($temp_array); $i = @key($temp_array); next($temp_array)) {
$snmp_array[$o]["oid"] = ereg_replace("^\.", "", $i);
$snmp_array[$o]["value"] = format_snmp_string($temp_array[$i]);
$o++;
}
}else{
/* ucd/net snmp want the timeout in seconds */
$timeout = ceil($timeout / 1000);
if ($version == "1") {
$snmp_auth = (read_config_option("snmp_version") == "ucd-snmp") ? SNMP_ESCAPE_CHARACTER . $community . SNMP_ESCAPE_CHARACTER : "-c " . SNMP_ESCAPE_CHARACTER . $community . SNMP_ESCAPE_CHARACTER; /* v1/v2 - community string */
}elseif ($version == "2") {
$snmp_auth = (read_config_option("snmp_version") == "ucd-snmp") ? SNMP_ESCAPE_CHARACTER . $community . SNMP_ESCAPE_CHARACTER : "-c " . SNMP_ESCAPE_CHARACTER . $community . SNMP_ESCAPE_CHARACTER; /* v1/v2 - community string */
$version = "2c"; /* ucd/net snmp prefers this over '2' */
}elseif ($version == "3") {
$snmp_auth = "-u $username -l authPriv -a MD5 -A $password -x DES -X $password"; /* v3 - username/password */
}
if (read_config_option("snmp_version") == "ucd-snmp") {
$temp_array = exec_into_array(read_config_option("path_snmpwalk") . " -v$version -t $timeout -r $retries $hostname:$port $snmp_auth $oid");
}else {
$temp_array = exec_into_array(read_config_option("path_snmpwalk") . " -O QfntUe $snmp_auth -v $version -t $timeout -r $retries $hostname:$port $oid");
}
if ((sizeof($temp_array) == 0) || (substr_count($temp_array[0], "No Such Object"))) {
return array();
}
for ($i=0; $i < count($temp_array); $i++) {
$snmp_array[$i]["oid"] = trim(ereg_replace("(.*) =.*", "\\1", $temp_array[$i]));
$snmp_array[$i]["value"] = format_snmp_string($temp_array[$i]);
}
}
return $snmp_array;
}
示例9: cacti_snmp_walk
function cacti_snmp_walk($hostname, $community, $oid, $version, $v3username, $v3password, $v3authproto = "", $v3privpassphrase = "", $v3privproto = "", $port = 161, $timeout = 500, $environ = SNMP_POLLER) {
require_once(CACTI_BASE_PATH . "/lib/sys/exec.php");
$snmp_array = array();
$temp_array = array();
/* determine default retries */
$retries = read_config_option("snmp_retries");
if ($retries == "") $retries = 3;
/* get rid of quotes in privacy passphrase */
$v3privpassphrase = str_replace("#space#", " ", $v3privpassphrase);
if ($v3privproto == "[None]") {
$v3privproto = "";
}
$path_snmpbulkwalk = read_config_option("path_snmpbulkwalk");
if ((snmp_get_method($version) == SNMP_METHOD_PHP) &&
(($version == 1) ||
(version_compare(phpversion(), "5.1") >= 0) ||
(!file_exists($path_snmpbulkwalk)))) {
/* make sure snmp* is verbose so we can see what types of data
we are getting back */
snmp_set_quick_print(0);
/* force php to return numeric oid's */
if (function_exists("snmp_set_oid_numeric_print")) {
snmp_set_oid_numeric_print(1);
}
if ($version == "1") {
$temp_array = @snmprealwalk("$hostname:$port", $community, trim($oid), ($timeout * 1000), $retries);
}elseif ($version == "2") {
$temp_array = @snmp2_real_walk("$hostname:$port", $community, trim($oid), ($timeout * 1000), $retries);
}else{
$temp_array = @snmp3_real_walk("$hostname:$port", $v3username, snmp_get_v3authpriv($v3privproto), $v3authproto,
$v3password, $v3privproto, $v3privpassphrase, trim($oid), ($timeout * 1000), $retries);
}
$o = 0;
for (@reset($temp_array); $i = @key($temp_array); next($temp_array)) {
$snmp_array[$o]["oid"] = ereg_replace("^\.", "", $i);
$snmp_array[$o]["value"] = format_snmp_string($temp_array[$i]);
$o++;
}
}else{
/* ucd/net snmp want the timeout in seconds */
$timeout = ceil($timeout / 1000);
if ($version == "1") {
$snmp_auth = (read_config_option("snmp_version") == "ucd-snmp") ? SNMP_ESCAPE_CHARACTER . $community . SNMP_ESCAPE_CHARACTER : "-c " . SNMP_ESCAPE_CHARACTER . $community . SNMP_ESCAPE_CHARACTER; /* v1/v2 - community string */
}elseif ($version == "2") {
$snmp_auth = (read_config_option("snmp_version") == "ucd-snmp") ? SNMP_ESCAPE_CHARACTER . $community . SNMP_ESCAPE_CHARACTER : "-c " . SNMP_ESCAPE_CHARACTER . $community . SNMP_ESCAPE_CHARACTER; /* v1/v2 - community string */
$version = "2c"; /* ucd/net snmp prefers this over '2' */
}elseif ($version == "3") {
$snmp_auth = "-u $v3username -A $v3password -a $v3authproto -X $v3privpassphrase -x $v3privproto -l " . snmp_get_v3authpriv($v3privproto); /* v3 - username/password/etc... */
}
if (read_config_option("snmp_version") == "ucd-snmp") {
$temp_array = exec_into_array(read_config_option("path_snmpwalk") . " -v$version -t $timeout -r $retries $hostname:$port $snmp_auth $oid");
}else {
if (strlen(trim($path_snmpbulkwalk)) && ($version > 1)) {
$temp_array = exec_into_array(read_config_option("path_snmpbulkwalk") . " -O QfntUe $snmp_auth -v $version -t $timeout -r $retries -Cr50 $hostname:$port $oid");
}else{
$temp_array = exec_into_array(read_config_option("path_snmpwalk") . " -O QfntUe $snmp_auth -v $version -t $timeout -r $retries $hostname:$port $oid");
}
}
if ((sizeof($temp_array) == 0) ||
(substr_count($temp_array[0], "No Such Object")) ||
(substr_count($temp_array[0], "No more variables"))) {
return array();
}
for ($i=0; $i < count($temp_array); $i++) {
$snmp_array[$i]["oid"] = trim(ereg_replace("(.*) =.*", "\\1", $temp_array[$i]));
$snmp_array[$i]["value"] = format_snmp_string($temp_array[$i]);
}
}
return $snmp_array;
}
示例10: foreach
} else {
?>
<th valign=bottom><img src=img/dl.png title="DB value"><br>In Octets</th>
<th valign=bottom><img src=img/ul.png title="DB value"><br>Out Octets</th>
<th valign=bottom><img src=img/xr.png title="DB value"><br>In Err</th>
<th valign=bottom><img src=img/xg.png title="DB value"><br>Out Err</th>
<?php
}
?>
<th valign=bottom><img src=img/netg.png title="DB value"><br>Address</th>
<?php
if ($uptime) {
foreach (snmprealwalk("{$ip}", "{$comm}", ".1.3.6.1.2.1.2.2.1.8") as $ix => $val) {
$ifost[substr(strrchr($ix, "."), 1)] = $val;
}
foreach (snmprealwalk("{$ip}", "{$comm}", ".1.3.6.1.2.1.2.2.1.9") as $ix => $val) {
$iflac[substr(strrchr($ix, "."), 1)] = $val;
}
}
$row = 0;
foreach ($ifn as $i => $in) {
if ($row == "1") {
$row = "0";
$off = 180;
} else {
$row = "1";
$off = 195;
}
$bg3 = sprintf("%02x", $off);
$rs = $gs = $bg3;
$bg = $bg3 . $bg3 . $bg3;
示例11: usage
usage("Must set Host (-H)");
}
if (!isset($community)) {
usage("Must set Community (-n)");
}
if (!isset($partition)) {
usage("Must set partition (-p)");
}
if (!isset($warning)) {
usage("Must set warning threshold (-w)");
}
if (!isset($critical)) {
usage("Must set critical threshold (-c)");
}
snmp_set_quick_print(1);
$hrStorageDescr = @snmprealwalk($host, $community, "hrStorageDescr", SNMP_TIMEOUT, SNMP_RETRIES);
if (count($hrStorageDescr) == 1) {
print "Unable to query server {$host}\n";
exit(1);
}
foreach ($hrStorageDescr as $oid => $val) {
if (ereg("^{$partition}\$", $val)) {
$index = substr($oid, strrpos($oid, ".") + 1);
}
}
if (!isset($index)) {
print "{$partition} isn't mounted on {$host} | used=\n";
exit(1);
}
$used = @snmpget($host, $community, "hrStorageUsed.{$index}", SNMP_TIMEOUT, SNMP_RETRIES);
$total = @snmpget($host, $community, "hrStorageSize.{$index}", SNMP_TIMEOUT, SNMP_RETRIES);
示例12: error_reporting
>
<th width=20%><img src=img/32/cam.png><br>Source</th>
<th width=20%><img src=img/32/nglb.png><br>Destination</th>
<th><img src=img/32/tap.png><br>Bit/s</th>
<th><img src=img/32/clock.png><br>Last Used</th>
<?php
error_reporting(1);
snmp_set_quick_print(1);
foreach (snmprealwalk("{$ip}", "{$comm}", ".1.3.6.1.4.1.9.10.2.1.1.2.1.12") as $ix => $val) {
$prun[substr(strstr($ix, '9.10.2.1.1.2.1.'), 18)] = $val;
// cut string at beginning with strstr first, because it depends on snmpwalk & Co being installed!
}
foreach (snmprealwalk("{$ip}", "{$comm}", ".1.3.6.1.4.1.9.10.2.1.1.2.1.19") as $ix => $val) {
$bps[substr(strstr($ix, '9.10.2.1.1.2.1.'), 18)] = $val;
}
foreach (snmprealwalk("{$ip}", "{$comm}", ".1.3.6.1.4.1.9.10.2.1.1.2.1.23") as $ix => $val) {
$last[substr(strstr($ix, '9.10.2.1.1.2.1.'), 18)] = $val;
}
$nmrout = 0;
ksort($prun);
$row = 0;
foreach ($prun as $mr => $pr) {
if ($row % 2) {
$bg = $bga;
$bi = $bia;
} else {
$bg = $bgb;
$bi = $bib;
}
$row++;
$i = explode(".", $mr);
示例13: onuListAction
public function onuListAction()
{
// Check if id and blogpost exists.
$id = (int) $this->params()->fromRoute('id', 0);
if (!$id) {
$this->flashMessenger()->addErrorMessage('Device id doesn\'t set');
return $this->redirect()->toRoute('device');
}
$objectManager = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager');
$device = $objectManager->getRepository('\\Application\\Entity\\Device')->findOneBy(array('id' => $id));
if (!$device) {
$this->flashMessenger()->addErrorMessage(sprintf('Device with id %s doesn\'t exists', $id));
return $this->redirect()->toRoute('device');
}
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
$Array_descr = snmprealwalk($device->getIp(), $device->getSnmpCommunity(), "ifDescr");
if (count($Array_descr) > 0) {
foreach ($Array_descr as $key => $type) {
$key = str_replace("IF-MIB::ifDescr.", "", $key);
$type = trim(str_replace("STRING: ", "", $type));
$olt = strtok($type, ":");
if (preg_match("#:#", $type)) {
$active = "";
try {
$opt_level_up = snmpget($device->getIp(), $device->getSnmpCommunity(), ".1.3.6.1.4.1.3320.101.10.5.1.5.{$key}");
$opt_level_up = trim(str_replace("INTEGER: ", "", $opt_level_up) / 10);
} catch (Exception $e) {
}
$mac_onu = snmpget($device->getIp(), $device->getSnmpCommunity(), ".1.3.6.1.4.1.3320.101.10.4.1.1.{$key}");
$mac_onu = str_replace(" ", ":", strtolower(trim(str_replace("Hex-STRING: ", "", $mac_onu))));
//$active = snmpget("$ip", $communit, "1.3.6.1.4.1.3320.101.10.1.1.26.$key");
// $active = str_replace(" ", ":", strtolower(trim(str_replace("INTEGER: ", "", $active))));
//$onu_vendor = snmpget("$ip", $communit, ".1.3.6.1.4.1.3320.101.10.1.1.1.$key");
// $onu_vendor = str_replace(" ", ":", strtolower(trim(str_replace("STRING: ", "", $onu_vendor))));
//$onu_model = snmpget("$ip", $communit, ".1.3.6.1.4.1.3320.101.10.1.1.2.$key");
// $onu_model = str_replace(" ", ":", strtolower(trim(str_replace("STRING: ", "", $onu_model))));
//$onu_distance = snmpget("$ip", $communit, ".1.3.6.1.4.1.3320.101.10.1.1.27.$key");
// $onu_distance = str_replace(" ", ":", strtolower(trim(str_replace("INTEGER: ", "", $onu_distance))));
$Array_ports = "";
$Array_ports_ = "";
$Array_ports__ = "";
//$Array_ports = snmprealwalk("$ip", $communit, "enterprises.3320.101.12.1.1.8.$key");
//print_r($Array_ports);
/*foreach($Array_ports as $key_ => $state)
{
$Array_state=explode(":", $state);
$state = trim($Array_state[1]);
if($state == 1 ){ $state="up"; }
if($state == 2 ){ $state="down"; }
$Array_ports__[]= $port." : ".$state;
}*/
/*if(count($Array_ports__)>0){
$Array_olt[$olt][$mac_onu]['ports'] = implode("<br>", $Array_ports__);
}*/
$Array_olt[$olt][$mac_onu]['type'] = $type;
$Array_olt[$olt][$mac_onu]['level_up'] = $opt_level_up;
$Array_olt[$olt][$mac_onu]['active'] = $active;
$arr0[] = ["key" => $key, "olt" => $olt, "port" => $type, "mac_onu" => $mac_onu, "rxp" => $opt_level_up, "active" => $active];
}
}
ksort($Array_olt);
foreach ($Array_olt as $key => $type) {
$olt = $key;
$n = 0;
foreach ($type as $key1 => $type1) {
$mac_onu = $key1;
$level_up = $type1['level_up'];
$type = $type1['type'];
// $active = $type1['active'];
// $ports = $type1['ports'];
$n++;
if ($olt != $old_olt && $n != 1) {
$m = 0;
}
$m++;
$old_olt = $olt;
}
}
}
// print_r($arr0);
$view = new ViewModel(array('device' => $device->getArrayCopy(), 'obj' => $arr0));
return $view;
}
示例14: __construct
/**
* get all information from all configured ups in phpsysinfo.ini and store output in internal array
*/
public function __construct()
{
parent::__construct();
switch (strtolower(PSI_UPS_SNMPUPS_ACCESS)) {
case 'command':
if (defined('PSI_UPS_SNMPUPS_LIST') && is_string(PSI_UPS_SNMPUPS_LIST)) {
if (preg_match(ARRAY_EXP, PSI_UPS_SNMPUPS_LIST)) {
$upss = eval(PSI_UPS_SNMPUPS_LIST);
} else {
$upss = array(PSI_UPS_SNMPUPS_LIST);
}
foreach ($upss as $ups) {
CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -r 1 " . $ups . " .1.3.6.1.4.1.318.1.1.1.1", $buffer, PSI_DEBUG);
if (strlen($buffer) > 0) {
$this->_output[$ups] = $buffer;
$buffer = "";
CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -r 1 " . $ups . " .1.3.6.1.4.1.318.1.1.1.2", $buffer, PSI_DEBUG);
if (strlen($buffer) > 0) {
$this->_output[$ups] .= "\n" . $buffer;
}
$buffer = "";
CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -r 1 " . $ups . " .1.3.6.1.4.1.318.1.1.1.3", $buffer, PSI_DEBUG);
if (strlen($buffer) > 0) {
$this->_output[$ups] .= "\n" . $buffer;
}
$buffer = "";
CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -r 1 " . $ups . " .1.3.6.1.4.1.318.1.1.1.4", $buffer, PSI_DEBUG);
if (strlen($buffer) > 0) {
$this->_output[$ups] .= "\n" . $buffer;
}
}
}
}
break;
case 'php-snmp':
if (!extension_loaded("snmp")) {
$this->error->addError("Requirements error", "SNMPups plugin requires the snmp extension to php in order to work properly");
break;
}
snmp_set_valueretrieval(SNMP_VALUE_LIBRARY);
snmp_set_oid_output_format(SNMP_OID_OUTPUT_NUMERIC);
if (defined('PSI_UPS_SNMPUPS_LIST') && is_string(PSI_UPS_SNMPUPS_LIST)) {
if (preg_match(ARRAY_EXP, PSI_UPS_SNMPUPS_LIST)) {
$upss = eval(PSI_UPS_SNMPUPS_LIST);
} else {
$upss = array(PSI_UPS_SNMPUPS_LIST);
}
foreach ($upss as $ups) {
if (!PSI_DEBUG) {
restore_error_handler();
/* default error handler */
$old_err_rep = error_reporting();
error_reporting(E_ERROR);
/* fatal errors only */
}
$bufferarr = snmprealwalk($ups, "public", ".1.3.6.1.4.1.318.1.1.1.1", 1000000, 1);
if (!PSI_DEBUG) {
error_reporting($old_err_rep);
/* restore error level */
set_error_handler('errorHandlerPsi');
/* restore error handler */
}
if (!empty($bufferarr)) {
$buffer = "";
foreach ($bufferarr as $id => $string) {
$buffer .= $id . " = " . $string . "\n";
}
if (!PSI_DEBUG) {
restore_error_handler();
/* default error handler */
$old_err_rep = error_reporting();
error_reporting(E_ERROR);
/* fatal errors only */
}
$bufferarr2 = snmprealwalk($ups, "public", ".1.3.6.1.4.1.318.1.1.1.2", 1000000, 1);
$bufferarr3 = snmprealwalk($ups, "public", ".1.3.6.1.4.1.318.1.1.1.3", 1000000, 1);
$bufferarr4 = snmprealwalk($ups, "public", ".1.3.6.1.4.1.318.1.1.1.4", 1000000, 1);
if (!PSI_DEBUG) {
error_reporting($old_err_rep);
/* restore error level */
set_error_handler('errorHandlerPsi');
/* restore error handler */
}
if (!empty($bufferarr2)) {
foreach ($bufferarr2 as $id => $string) {
$buffer .= $id . " = " . $string . "\n";
}
if (!empty($bufferarr3)) {
foreach ($bufferarr3 as $id => $string) {
$buffer .= $id . " = " . $string . "\n";
}
}
}
if (!empty($bufferarr4)) {
foreach ($bufferarr4 as $id => $string) {
$buffer .= $id . " = " . $string . "\n";
}
//.........这里部分代码省略.........
示例15: ajax_getMIBS
/**
* get available mibs for a device
*
* @param args json params converted into an array
* id contains an array of ids
* community snmp community string
* @throws none
* @return array containing result and possible error messages
*/
public function ajax_getMIBS($args)
{
try {
$data = array();
$dev = $this->getDevice($args['id']);
snmp_set_quick_print(true);
$oids = snmprealwalk($dev->address, $args['community'], null);
if ($oids === false) {
return array('result' => 'failure', 'error' => 'SNMP Failure');
} else {
// load returned mibs
foreach ($oids as $k => $v) {
$mib_txt = sprintf("%s%s (%s%s)", substr($k, 0, 25), strlen($k) > 25 ? "..." : "", substr($v, 0, 15), strlen($v) > 15 ? "..." : "");
$data[] = array('mib' => $k, 'mib_txt' => $mib_txt, 'value' => $v);
}
}
} catch (Exception $e) {
return array('result' => 'failure', 'error' => $e->getMessage());
}
return array('result' => 'success', 'data' => $data);
}