Net-SNMP:如何在SET命令中以十六进制字节指定八位字符串?

时间:2016-05-22 15:11:06

标签: string hex byte snmp net-snmp

我使用net-snmp-5.5-1.x86.exe for Win32

我需要将IP addreess设置为十六进制格式,使用NET-SNMP set命令用空格分隔。例如,转换为十六进制格式的IP地址192.168.100.100是0xC0A86464

192.168.100.100 > 0xC0A86464

使用snmpget检查时,正确设置的值应返回以下值:

xxx-xxx-xxx-MIB::docsDevServerAddress.0 = Hex-STRING: C0 A8 64 64

我试过

snmpset -v 1 -c private 192.168.100.5 docsDevServerAddress.0 x 0xC0 A8 64 64

但是当我使用这种格式设置HEX地址时,我总是遇到这样的错误:'A8: Bad object type: 6''00xA8 Bad object type: 0',依此类推,这取决于我尝试的十六进制格式的表示。 根据NET-SNMP手册,'x'是十六进制字节的八位字符串,由空格分隔。

如何为snmpset设置正确的字符串输入格式以设置我需要的十六进制值?

4 个答案:

答案 0 :(得分:1)

古老的问题,但可能对其他人有用。

snmpset -v 1 -c private 192.168.100.5 docsDevServerAddress.0 x "C0 A8 64 64"

答案 1 :(得分:0)

我认为你应该删除十六进制字符串中的额外空格:

snmpset -v 1 -c private 192.168.100.5 docsDevServerAddress.0 x 0xC0A86464

答案 2 :(得分:0)

转到Necro,但这就是我能够设置多十六进制值的方式。这是通过PowerShell内部的NetSNMP的Windows构建完成的。

& '.\SnmpSet.exe' -q -r:"$ip" -v:2c -c:private -o:.1.3.6.1.4.1.13858.8.3.1.5.6 -val:0x42 -val:0x46 -tp:hex

答案 3 :(得分:0)

您可以尝试如下:

snmpset -v 1 -c private 192.168.100.5 docsDevServerAddress.0 x 'C0 A8 64 64'

有关使用 snmpset 命令的更多信息,请参阅 http://www.net-snmp.org/wiki/index.php/TUT:snmpsethttps://linux.die.net/man/1/snmpsethttps://doc.bccnsoft.com/docs/php-docs-7-en/function.snmpset.html