Sziasztok!
SNMP hálózatmenedzselő scriptet írok Perlben, és akadt némi problémám. 32 bites HEX stringeket piszkálgatok, olvasni már sikerült, így:
$session->get_request(
".1.3.6.1.4.1.171.10.75.2.13.1.1.3.1", #tvlanMember.1; Value (OctetString)
".1.3.6.1.4.1.171.10.75.2.13.1.1.3.2", #tvlanMember.2; Value (OctetString)
".1.3.6.1.4.1.171.10.75.2.13.1.1.4.1", #tvlanUntaggedPorts.1; Value (OctetString)
".1.3.6.1.4.1.171.10.75.2.13.1.1.4.2"); #tvlanUntaggedPorts.2; Value (OctetString)
Viszont amikor írni szeretném:
$session->set_request(".1.3.6.1.4.1.171.10.75.2.13.1.1.4.1 OctetString ".$value); #tvlanUntaggedPorts.1; Value (OctetString)
akkor az alábbi hibaüzenetet kapom:
Expected [OBJECT IDENTIFIER, ASN.1 type, object value] combination
A string, amit küld, a következő:
.1.3.6.1.4.1.171.10.75.2.13.1.1.4.1 OctetString BEEFCAFE
A dokumentációban nincs szó erről az ASN.1 típusról, de még egy nyomorult példa kódot sem találtam SNMP set-re a neten. Tudja valaki, hogy kell ezzel a Net::SNMP-vel megetetni a hexa értékeket? Próbáltam space-el elválasztani, vesszővel, space-el és vesszővel, az "OctetString" szöveget mindenféle módon, a sima "x"-et, mint ahogy a parancssoros verzióban kell, a hexa string elé
0x
-et rakni, de sehogy sem jó...
ps: parancssorból simán működik, így:
snmpset -c whatever -v 1 10.0.3.10 .1.3.6.1.4.1.171.10.75.2.13.1.1.4.2 x BEEFCAFE
üdv,
Petya
- 935 megtekintés
Hozzászólások
Fejlemény:
Így már elfogadja:
$session->set_request(
-varbindlist => [".1.3.6.1.4.1.171.10.75.2.13.1.1.4.1", OCTET_STRING, "BEEFCAFE"]
);
Viszont az érték még mindig nem jó:
Received badValue(3) error-status at error-index 1
Van valakinek ötlete?
Petya
- A hozzászóláshoz be kell jelentkezni
No, megvan a megoldás. Ha esetleg valaki más is belefutna:
$session->set_request(
-varbindlist => [".1.3.6.1.4.1.171.10.75.2.13.1.1.4.1", OCTET_STRING, pack("H8", "BEEFCAFE")]
);
üdv,
Petya
- A hozzászóláshoz be kell jelentkezni