[![Actions Status](https://github.com/bojanra/AnyEvent-SNMP-TrapReceiver/actions/workflows/test.yml/badge.svg)](https://github.com/bojanra/AnyEvent-SNMP-TrapReceiver/actions) # NAME AnyEvent::SNMP::TrapReceiver - SNMP trap receiver by help of AnyEvent # SYNOPSIS use AnyEvent::SNMP::TrapReceiver; my $cond = AnyEvent->condvar; my $echo_server = AnyEvent::SNMP::TrapReceiver->new( bind => ['0.0.0.0', 162], cb => sub { my ( $trap) = @_; }, ); my $done = $cond->recv; # DESCRIPTION This is a wrapper for the AnyEvent::Handle::UDP with embedded SNMP trap decoder. Currently only v1 and v2c traps are supported. The trap decoder code was copied from Net::SNMPTrapd by Michael Vincent. # ATTRIBUTES ## bind The IP address and port to bind the UDP listener/handle. ## cb The codeblock to be called when a trap is received. # TIPS&TRICKS The default port for SNMP traps is 162. In Linux ports below 1024 are privileged ports and typically only root can acccess these ports. If you don't want to run your script as root user you can use iptables -A PREROUTING -t nat -i eth0 -p udp -m udp --dport 162 -j REDIRECT --to-ports 1162 to redirect the port. You can go even further and redirect only traps from specific sources to your app iptables -A PREROUTING -t nat -i eth0 -s 192.168.33.16/32 -p udp -m udp --dport 162 -j REDIRECT --to-ports 1162 # LICENSE Copyright (C) Bojan Ramšak. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. # AUTHOR Bojan Ramšak