Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Perl(net snmp)发送陷阱_Perl_Snmp_Net Snmp_Snmp Trap - Fatal编程技术网

使用Perl(net snmp)发送陷阱

使用Perl(net snmp)发送陷阱,perl,snmp,net-snmp,snmp-trap,Perl,Snmp,Net Snmp,Snmp Trap,我运行snmptrapd,当通过snmptrap发送陷阱时,可以看到传入的陷阱 snmptrap -c public -v 2c localhost "" 1.3.3.3.3.3.3.3 1.2.2.2.2.2.2 s "Aliens here" 但当通过Perl脚本发送时,我没有陷阱 use SNMP; $sess = new SNMP::Session(DestHost => '127.0.0.1', RemotePort => "162" ); $sess->tra

我运行snmptrapd,当通过snmptrap发送陷阱时,可以看到传入的陷阱

snmptrap -c public -v 2c localhost "" 1.3.3.3.3.3.3.3 1.2.2.2.2.2.2 s "Aliens here"
但当通过Perl脚本发送时,我没有陷阱

use SNMP;

$sess = new SNMP::Session(DestHost => '127.0.0.1', RemotePort => "162" );

$sess->trap(enterprise=>'.1.3.6.1.4.1.2021', # or 'ucdavis' [default]
                agent => '127.0.0.1', # or 'localhost',[dflt 1st intf on host]
                generic => specific,  # can be omitted if 'specific' supplied
                specific => 5,        # can be omitted if 'generic' supplied
                uptime => 1234,       # dflt to localhost uptime (0 on win32)
                [[ifIndex, 1, 1],[sysLocation, 0, "here"]]);

怎么了?

您的第二个版本,即perl版本,与第一个版本不同,它没有指定社区或版本。尝试添加它们

$sess = new SNMP::Session(DestHost => '127.0.0.1', 
                                      RemotePort => "162",
                                      Community => "public,
                                      Version => 2);
也看到
用于SNMP::会话使用

我不熟悉SNMP陷阱,但是您的
snmptrap
看起来与您的perl等价物不一样,
RemotePort
在哪里,以及
.1.3.6.1.4.1.2021
1.3.3.3.3.3.3.1.2.2
的关系如何?在第一个snmptrap中,默认的目标端口是162,所以不要认为这个问题,提问者说第一个好。另外,不同的OID.1.3.6.1.4.1.2021与1.3.3.3.3.3.3.3 1.2.2.2不应该(!)有什么关系,这看起来是一个更基本的通信问题。使用Wireshark或
tcpdump
之类的工具,检查传出接口的通信量,看看数据包是否真的发送了。如果是,检查是否到达接收端。