TCP/IP 索引屬性和裝置索引
索引屬性可讓數值索引附加至架構屬性名稱,藉此讓多個相關屬性共用相同的名稱,但每個屬性都有數值索引來識別個別屬性。 索引值必須是正整數,但其大小沒有上限。 架構查詢會決定應該與特定專案相關聯的索引值。 此機制可讓您存取 MIB 資料表中的資料。
IndexedProperty 建構會定義索引屬性。 下列限制適用于此建構。
IndexedProperty 建構不能是 Property 建構的父代。 NonIndexedProperty 建構是在 IndexedProperty 建構下定義沒有索引的屬性。
IndexedProperty 建構和 NonIndexedProperty 建構都不能是 Installed 建構的父代。
查詢也可以涉及另一個索引:裝置索引。 支援 SNMP 的網路裝置可以是各種子裝置的主機,包括印表機。 網路印表機中的 MIB 資料表具有根據裝置類型編制索引的專案, (裝置索引) 。 為了讓查詢從 MIB 資料表擷取資料,查詢必須有正確的裝置索引。 標準 TCP/IP 埠監視器可讓埠設定 UI 設定裝置索引。 deviceIndex設定為TRUE的 bidi 延伸模組, (請參閱Value和Installed建構) 導致 OID 與裝置索引串連至原始 OID。 索引屬性的索引會串連到裝置索引之後的 OID,如果使用的話。
程式碼範例
下列程式碼範例會將 Display 屬性新增至 Printer 屬性,以擴充 TCP/IP bidi 通訊架構。 此外, Display 屬性具有索引屬性 Row,且 deviceIndex 設定為 TRUE。 這裡顯示的架構會產生查詢,以從印表機顯示的特定資料列擷取文字。
<Property name="Printer">
<Property name="Display">
<IndexedProperty name="Row">
<Value name="Text" type="BIDI_TEXT"
oid="1.3.6.1.2.1.43.16.5.1.2" deviceIndex="true"/>
</IndexedProperty>
</Property>
</Property>
上述範例會產生下列查詢:
\Printer.Display.Row1:Text
從這個範例產生的 OID 開始與Value屬性中的oid屬性相同,但已附加兩個索引。 範例中附加的索引是由 deviceIndex 屬性設定為 TRUE 和 Row 為索引屬性所產生。 假設埠組態 UI 將裝置索引定義為 111,而且印表機顯示器第 1 列的文字是感興趣的,產生的 OID 會是 1.3.6.1.2.1.43.16.5.1.1.1.2.111.1。 這個 OID 與原始的相同,但裝置索引 (111) 和屬性索引 (結尾為 1) 。 如果 deviceIndex 已設定為 FALSE 或已省略,則產生的 OID 會是 1.3.6.1.2.1.43.16.5.1.2.1。 若要顯示第 n 列的文字,請使用 n的屬性索引。