我正在尝试使用snmp4j模拟SNMP代理。我正在向代理注册MOs。下面是代码段:
static final OID mo1= new OID("1.3.6.1.4.1.1234.1.104");
static final OID mo2= new OID("1.3.6.1.4.1.1234.1.104.1");
static final OID mo3= new OID("1.3.6.1.4.1.1234.1.104.1.1");
agent.registerManagedObject(MOCreator.createReadOnly(mo1,"m1"));
agent.registerManagedObject(MOCreator.createReadOnly(mo2,"m2"));
agent.registerManagedObject(MOCreator.createReadOnly(mo3,"m3"));
public class MOCreator {
public static MOScalar createReadOnly(OID oid,Object value ){
return new MOScalar(oid,
MOAccessImpl.ACCESS_READ_ONLY,
getVariable(value));
}
private static Variable getVariable(Object value) {
System.out.println("Value : "+value.toString());
OctetString octetString = new OctetString((String)value);
if(value instanceof String) {
return octetString;
}
throw new IllegalArgumentException("Unmanaged Type: " + value.getClass());
}
}
当启动代理时,我得到了DuplicateInstrationException。请指导我如何注册类。请提供方向。
发件人:http://oosnmp.net/pipermail/snmp4j/2014-September/005416.html
SMI禁止将一个OID注册在另一个OID之下(实例中的实例)。否则,代理中对象的字典排序无法无歧义地实现。
所以我认为这种OID注册方法是不可能的。您应该尝试使用OID,而不使用像这样严格的子字符串。或者尝试颠倒注册顺序。
事实上,正如Seth所说,OID的选择似乎是无效的。
假设你有一个OID1.3.6.1.4.1.1234.1.104
的对象。
要么:
1.3.6.1.4.1.1234.1.104.0
,或1.3.6.1.4.1.1234.1.104。
它也可以是一个对象组,而不是一个对象,如文件夹,但您也不会注册其中的一个。
标量下不能有标量(或表),因此不能向代理注册它们。
如果不知道您的MIB是什么样子的,您想保存什么类型的数据,以及您想如何组织它,我就不能给出具体的建议,但这里似乎有一个MIB设计问题。确保在MIB上运行smilint以验证正确性。
我已使用snmp4j api在SNMP代理上创建,但SNMP表注册存在问题 一旦我注册了表和表中的行。然后,如果我在表中设置值,所有行都会设置相同的值。我已经从JSON创建了snmp表 如果我设置了值,请在下表中 .1.3.6.1.4.1.1.201.6.2。它为下表中注册的所有行设置值。是否有人知道如何使用snmmpj代理正确注册和设置值。
我是SNMP新手,谢谢你的支持......我有一个子代理的现有Perl脚本,在尝试运行它时出现了以下问题:代理似乎连接到“默认”snmpd deamon,该deamon被配置为主代理(“master agentx”行存在于snmpd.conf中)。此时,脚本将一些值分配给我的MIB中的对象。但是,当我然后在master-agent上执行snmpwalk或snmpget时,我得到(对于v1查询)“结
源代码 ENS中的反向解析是指从以太坊地址(比如0x1234...)到ENS域名的映射,它通过一个特定的域名空间(.addr.reverse)来实现。这个域名空间由一个专用注册中心拥有和控制,该注册中心可以接受任何人的调用,并根据调用者的地址为其分配子域名。 例如,账户 0x314159265dd8dbb310642f98f50c066173c1259b 可以通过调用声明 314159265dd8
我在编写一个非常庞大的mib时遇到了问题,因为我只有一个代理与许多没有snmp的设备连接。所有设备都通过推送将相同类型的数据发送到代理,然后代理将snmp陷阱发送到snmp管理器。此外,Manager正在向代理发送SNMP GET。我想编写一个标准的mib,它适用于每个设备,管理器只需发送一些OID来获取对应的值,而不是数百个OID。一个非常庞大的mib意味着有很多分支。
使用以下代码作为示例https://www.jitendrazaa.com/blog/java/snmp/create-snmp-client-in-java-using-snmp4j/当我将OID发送到空IP或没有SNMP的设备时,要监视网络,程序会引发异常。 我使用for循环读取IP。我试图以不同的方式改变执行流程,但没有成功。 该程序属于java的GetAsString方法。lang.Nul
我正在尝试使用SNMP4j代理在SNMP代理上注册一组MOs。 然后运行它: 此处的输出为: 我得到DuplicateEntertainment strationException的原因是否与地址结构或顺序有关? 每个对象都是一个组织。snmp4j。代理人mo.MOScalar具有唯一的八位字符串值。 相关:向snmp代理注册OID