关于IpAddress类型的问题

33 views
Skip to first unread message

lee213

unread,
May 26, 2009, 4:12:15 AM5/26/09
to EMS网管开发
大家好,十分感谢大家对我帮助,特别是sky!
现在遇到一个新的问题,在表节点中,有一个类型为IpAddress的节点,怎么也不能set成功,但是get是没有问题的。但是在叶子节点中,
IpAddress类型的节点却没有任何问题。很是奇怪,不知大家有没有遇到相似的问题,是如何解决的。谢谢!

zanela...@gmail.com

unread,
May 26, 2009, 4:25:05 AM5/26/09
to EMS网管开发


问题说的不太详细,具体点才好判断啥问题。 一般表节点 和 叶子节点的区别 主要就是 表索引的检查函数,可能是索引检查出现错误引起的,就是说索引
不对,或者也有其他原因,单步调试就知道了。

sky

unread,
May 26, 2009, 4:29:34 AM5/26/09
to EMS网管开发
上面这位才是真正的SNMP大师(我的同事),鼓掌(哗哗哗哗.........)
我本人不是做SNMP开发的。我做的是EMS,常常和SNMP打交道,不过都很简单。
同意大师的看法,能GET不能SET,只需要在NETSNMP的SET入口单步一下就知道问题出在哪里了。

比如,在你这个IPADDRESS的节点的SET实现处打印一条语句,可能就发现根本没有走到这步就出去了。
又或者是执行到这个函数的的一半的时候某句话出错出去了。
很多问题只需要单步就可以了。就这个问题而言,描述确实很不清楚,因为这类问题往往是实现不对,所以具体应该放在实现是怎么做的上面。总的原则应该是先
确定大致的代码问题块然后逐步缩小范围至确认。

lzb

unread,
May 27, 2009, 1:37:27 AM5/27/09
to EMS网管开发

就是在设置表中的一个IpAddress类型的节点的时候出现下面问题:
snmpset -v 2c -c public localhost .1.3.6.1.4.1.17409.1.1.1.2.0 a
192.168.0.100
Error in packet.
Reason: wrongType (The set datatype does not match the data type the
agent expects)
Failed object: TEST::ipAddress.0

a 后面换种数据就会出现另种问题:
snmpset -v 2c -c public localhost .1.3.6.1.4.1.17409.1.1.1.2.0 a
192168144213
.1.3.6.1.4.1.17409.1.1.1.2.0: Bad value notation (192168144213)

但是设置表的其他类型的节点就没问题,而且如果只设置一个独立的IpAddress类型的叶子节点也没有这个问题!

alading664

unread,
May 27, 2009, 1:58:28 AM5/27/09
to ems-nms
.1.3.6.1.4.1.17409.1.1.1.2.0
表示标量,并不表示表中的值
 

alading664
2009-05-27

发件人: lzb
发送时间: 2009-05-27 13:37:30
收件人: EMS网管开发
抄送:
主题: Re: 关于IpAddress类型的问题

alading664

unread,
May 27, 2009, 1:59:23 AM5/27/09
to ems-nms
snmpset -v 2c -c public localhost .1.3.6.1.4.1.17409.1.1.1.2.(index中的值) a
192.168.0.100
 

alading664
2009-05-27

发件人: lzb
发送时间: 2009-05-27 13:37:30
收件人: EMS网管开发
抄送:
主题: Re: 关于IpAddress类型的问题
 

lzb

unread,
May 27, 2009, 2:24:42 AM5/27/09
to EMS网管开发
snmpset -v 2c -c public localhost .1.3.6.1.4.1.17409.1.1.1.2.0 a
192.168.0.100
2后面的那个0就是索引值

On May 27, 1:59 pm, "alading664" <alading...@gmail.com> wrote:
> snmpset -v 2c -c public localhost .1.3.6.1.4.1.17409.1.1.1.2.(index中的值) a
> 192.168.0.100
>

> alading664
> 2009-05-27

alading664

unread,
May 27, 2009, 2:37:30 AM5/27/09
to ems-nms
那把你发下去的设置包贴过来,你可以先get这个节点,看一下它是属于什么类型的
 

alading664
2009-05-27

发件人: lzb
发送时间: 2009-05-27 14:24:45
收件人: EMS网管开发
抄送:
主题: Re: 关于IpAddress类型的问题
 
snmpset -v 2c -c public localhost .1.3.6.1.4.1.17409.1.1.1.2.0 a
192.168.0.100
2后面的那个0就是索引值
On May 27, 1:59 pm, "alading664" <alading...@gmail.com> wrote:
> snmpset -v 2c -c public localhost .1.3.6.1.4.1.17409.1.1.1.2.(index中的值) a
> 192.168.0.100
>
> alading664
> 2009-05-27

lee213

unread,
May 27, 2009, 2:44:52 AM5/27/09
to EMS网管开发
谢谢!如果是索引的问题,但是我这是这个表内的其他节点都没有问题,而且这个IpAddress类型的节点取值也没有问题的,是否可以认为不是索引的问
题呢?

lee213

unread,
May 27, 2009, 2:49:50 AM5/27/09
to EMS网管开发
谢谢,如果sky说的实现是指我们自己对ip的更改话,那我们的错误不是出在这个地方,我加了调试信息,是程序根本就没进入handler函数,因此我
认为不是具体的实现的问题了。我新建了一个表,然后mib2C后基本什么实现都不做,只是添加了init和相关部分的代码,但是仍然不能设置成功,很是
奇怪!

sky

unread,
May 27, 2009, 3:05:42 AM5/27/09
to EMS网管开发
这个问题太奇怪了。
这么说也许不礼貌,但是按我的经验这类问题估计是自己在某个地方(很简单)的地方出了个错也是可能的。
“我新建了一个表,然后mib2C后基本什么实现都不做,只是添加了init和相关部分的代码”这类问题我也遇见过,如果只是一个空代码放进去转还有问
题,那么一定是什么地方不对,而这个地方是自己根本没有想到的。
这个属于实践逻辑,说的不对不要见怪。

> > > 不对,或者也有其他原因,单步调试就知道了。- 隐藏被引用文字 -
>
> - 显示引用的文字 -

alading664

unread,
May 27, 2009, 3:09:28 AM5/27/09
to ems-nms
我一般先是看IP包,如果上位机的IP包是对的,就是下面agent的问题,反之亦然。
 

alading664
2009-05-27

发件人: sky
发送时间: 2009-05-27 15:05:45
收件人: EMS网管开发
抄送:
主题: Re: 关于IpAddress类型的问题
 

Hailong Shu

unread,
May 27, 2009, 3:13:20 AM5/27/09
to ems...@googlegroups.com
我做这类开发,一般是用Ethereal抓包,然后发出去的ODI是对的就算MANAGER部分正确。
返回的内容不对就找做AGENT开发的同事来看问题。

2009/5/27 alading664 <aladi...@gmail.com>

lzb

unread,
May 27, 2009, 3:15:16 AM5/27/09
to EMS网管开发, alading664

我把我的mib和代码发到你的邮箱里面了,麻烦你帮我看一下吧,实现不知道问题出在哪里了!


On May 27, 3:09 pm, "alading664" <aladi...@gmail.com> wrote:
> 我一般先是看IP包,如果上位机的IP包是对的,就是下面agent的问题,反之亦然。
>
> alading664
> 2009-05-27
>
>

Reply all
Reply to author
Forward
0 new messages