2017-07-25 20 views
1

我正在尝试使用java实现snmpset, 和我正在使用bouncy castle版本1.52库来编码oids的值,现在我想编码一个IP地址,我如何重新调整它? 我尝试这样做:如何使用弹性城堡库编码ip地址?

new GeneralName(GeneralName.iPAddress,"xx.xx.xx.xx"); 

却得到了一个

snmpInASNParseErrs

错误

UPDATE:

OK,我觉得我很接近权现在回答,我用这个:

InetAddress ip = InetAddress.getByName("xx.xx.xx.xx"); 
byte[] bytes = ip.getAddress(); 
v.add(new DERApplicationSpecific(0, new DEROctetString(bytes))); 

现在,结果是:

C/X/IpAddress_04_04_0a_00_00_64

还需要更多的帮助!

+0

可能这是一个重复的问题。你有没有检查过https://stackoverflow.com/questions/43677981?答案建议升级到BC v1.56。 – Robert

+0

更新至1.56,仍然收到错误 – zenis

回答

0

最后,我解决了这个问题,通过这样的:

InetAddress ip = InetAddress.getByName(ipv4Address); 
byte[] bytes = ip.getAddress(); 
v.add(new DERApplicationSpecific(0, bytes));