TCP/IP 带索引属性和设备索引
索引属性允许将数字索引追加到架构属性名称,从而允许多个相关属性共享同一名称,但每个属性都有一个数字索引来标识单个属性。 索引值必须是正整数,但其大小没有上限。 架构查询确定应与特定元素关联的索引值。 此机制允许访问 MIB 表中的数据。
IndexedProperty 构造定义索引属性。 以下限制适用于此构造。
IndexedProperty 构造不能是 Property 构造的父构造。 NonIndexedProperty 构造是在 IndexedProperty 构造下定义没有索引的属性。
IndexedProperty 构造和 NonIndexedProperty 构造都不能是 Installed 构造的父构造。
查询还可以涉及另一个索引:设备索引。 支持 SNMP 的网络设备可以是各种子设备的主机,包括打印机。 网络打印机中的 MIB 表具有根据设备类型 (设备索引) 编制索引的条目。 为了使查询从 MIB 表检索数据,该查询必须具有正确的设备索引。 标准 TCP/IP 端口监视器允许通过端口配置 UI 配置设备索引。 一个 bidi 扩展, 其中 deviceIndex 设置为 TRUE , (查看 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 属性相同,但后面追加了两个索引。 示例中追加的索引源于设置为 TRUE 的 deviceIndex 属性,而 Row 是索引属性。 假设端口配置 UI 将设备索引定义为 111,并且打印机显示器的第 1 行中的文本是感兴趣的,则生成的 OID 将为 1.3.6.1.2.1.1.43.16.5.1.2.111.1。 此 OID 与原始版本相同,但末尾的设备索引 (111) 和属性索引 (1) 。 如果 deviceIndex 已设置为 FALSE 或省略,则生成的 OID 将为 1.3.6.1.2.1.43.16.5.1.2.1。 若要显示显示的第 n 行的文本,请使用 n 的属性索引。