#!/usr/bin/perl use strict; use warnings; use Net::SNMPTrapd; my $snmptrap = '3082016302[...]0b51'; # where [...] is you really, really long string my $trap = Net::SNMPTrapd->dump(pack "H*", $snmptrap); #DONE! # OR ... # for a nicely formatted output ... $trap = Net::SNMPTrapd->process_trap(pack "H*", $snmptrap); printf "Version = %i\n", $trap->version; printf "Community = %s\n", $trap->community, printf "PDU Type = %s\n", $trap->pdu_type; if ($trap->version == 1) { printf "Ent. OID = %s\n", $trap->ent_OID; printf "Agent Addr = %s\n", $trap->agentaddr; printf "Generic = %s\n", $trap->generic_trap; printf "Specific = %s\n", $trap->specific_trap; printf "Timeticks = %s\n", $trap->timeticks } else { printf "Request ID = %s\n", $trap->request_ID; printf "Error Stat = %s\n", $trap->error_status; printf "Error Idx = %s\n", $trap->error_index } print "Varbinds:\n"; for my $varbind (@{$trap->varbinds}) { for (keys(%{$varbind})) { printf "%s: %s\n", $_, $varbind->{$_} } }