發新話題

[分享] 《PHP》『SNMP函式庫』

《PHP》『SNMP函式庫』

《PHP》『SNMP函式庫』snmpget 取得SNMP物件

snmpget ---  取得SNMP物件

語法 : string snmpget (string hostname, string community, string object_id [, int timeout [, int retries]])

說明 :

成功則傳回SNMP物件,錯誤則傳回false。

snmpget( )用來讀取參數 object_id指定的SNMP物件的值,SNMP代理人(agent)是由參數 hostname來指定,參數 community指定讀取公眾(read community)。

Example :

<?php

    $syscontact = snmpget("127.0.0.1", "public", "system.SysContact.0");

?>



[ 本帖最後由 蔡逸竹 於 2006-9-20 20:24 編輯 ]

TOP

《PHP》『SNMP函式庫』snmpset 設定SNMP物件

snmpset ---  設定SNMP物件

語法 : bool snmpset (string hostname, string community, string object_id, string type, mixed value [, int timeout [, int retries]])

說明 :

設定指定的SNMP物件值,成功則傳回true,錯誤則傳回false。

snmpset( )是用來設定object_id所指定的SNMP物件的值,SNMP代理人(agent)是由參數 hostname來指定,參數 community指定讀取公眾(read community)。

TOP

《PHP》『SNMP函式庫』snmpwalk 取得所有SNMP物件

snmpwalk ---  取得所有SNMP物件

語法 : array snmpwalk (string hostname, string community, string object_id [, int timeout [, int retries]])

說明 :

從object_id傳回SNMP物件值的陣列,錯誤則傳回false。

snmpwalk( )是用來從hostname所指定的SNMP代理人(agent)讀取所有的值,參數 community指定讀取公眾(read community),一個null object_id是獲得SNMP物件樹狀的根目錄,並且傳回在此根目錄下的所有物件,傳回一個陣列。如果有指定 object_id,則傳回在此 object_id下的所有物件。

Example :

<?php

    $a = snmpwalk("127.0.0.1", "public", "");

?>

上面的範例將會從執行在localhost的SNMP代理人,傳回所有SNMP物件,我們可使用迴圈來取得它的值

Example :

<?php

   for ($i=0; $i<count($a); $i++) {

           echo $a[$i];

   }

?>

TOP

《PHP》『SNMP函式庫』snmpwalkoid 獲得網路實體樹狀的資料

snmpwalkoid ---  獲得網路實體樹狀的資料

語法 : array snmpwalkoid (string hostname, string community, string object_id [, int timeout [, int retries]])

說明 :

傳回一個陣列變數和物件ids,並且它們各自的物件值起始於object_id,錯誤則傳回false。

snmpwalkoid( )是用來從hostname指定的SNMP代理人,讀取所有物件 ids和它們各自的值。參數 community指定讀取公眾(read community),一個null object_id是獲得SNMP物件樹狀的根目錄,並且傳回在此根目錄下的所有物件,傳回一個陣列。如果有指定 object_id,則傳回在此 object_id下的所有物件。

snmpwalkoid( )的存在和snmpwalk( )有著歷史的原因,這二個函式都是為了後來的兼容性作準備。

Example :

<?php

    $a = snmpwalkoid("127.0.0.1", "public", "");

?>

上面的範例將會從執行在localhost的SNMP代理人,傳回所有SNMP物件,我們可使用迴圈來取得它的值

Example :

<?php

    for (reset($a); $i = key($a); next($a)) {

           echo "$i: $a[$i]<br>\n";

    }

?>

TOP

『SNMP函式庫』snmp_get_quick_print 獲得目前UCD函式庫的quick_print設定值

snmp_get_quick_print ---  獲得目前UCD函式庫的quick_print設定值

語法 : boolean snmp_get_quick_print (void )

說明 :

傳回目前儲存在UCD函式庫中quick_print的值,quick_print的預設值為關閉(off)。

Example :

<?php

    $quickprint = snmp_get_quick_print();

?>

如果quick_print是關閉的(off),則上面的範例會傳回false,如果quick_print是開啟的(on),則會傳回true。

當使用UCD SNMP函式庫時,snmp_get_quick_print( )才有效,當使用Windows SNMP函式庫時,此函式是無效的。

參考 : snmp_set_quick_print( )

TOP

『SNMP函式庫』snmp_set_quick_print 設定UCD SNMP函式庫中quick_print的值

snmp_set_quick_print ---  設定UCD SNMP函式庫中quick_print的值

語法 : void snmp_set_quick_print (boolean quick_print)

說明 :

設定UCD SNMP函式庫內部quick_print的值。當它設為(1)時,SNMP函式庫將會傳回 'quick_print'的值,意思是說它只會顯示出它的值。當它設為(0)時,UCD SNMP函式庫顯示出額外的資訊,包含了值的型態(例如 : IpAddress 或 OID),除此之外,它還會顯示出額外的三個字元或少於三個字元的十六進制的值。

當使用傳回的資訊而不會將它顯示出來時,通常會使用到quick_print。

Example :

<?php

    snmp_set_quick_print(0);

    $a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");

    echo "$a<BR>\n"; snmp_set_quick_print(1);

    $a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");

    echo "$a<BR>\n";

?>

上面的範例第一個顯示出來的值可能是 : 'Timeticks: (0) 0:00:00.00',若設為1則只會顯示出 '0:00:00.00'。

UCD SNMP函式庫預設上是傳回冗長的值,使用quick_print可以只傳回值。

現在字串仍然傳回額外的引號,這將會在後來的版本中修正。

當使用UCD SNMP函式庫時,snmp_get_quick_print( )才有效,當使用Windows SNMP函式庫時,此函式是無效的。

TOP

小弟我一點懂又有點不懂....真的讓我很頭痛.....

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。