mib2c中保留变量的列表

时间:2017-07-10 12:45:15

标签: perl mib

在哪里可以找到mib2c"语言"的保留变量名列表?我的意思是未描述的可能变量here,如$ {name},它计算为作为参数传递给mib2c.c的OID名称。

  1. 还有其他类似的变量吗?
  2. 是否有一个带有传递给mib2c的.conf文件的名称。

1 个答案:

答案 0 :(得分:2)

local/mib2c查看net-snmp-5.7.3,预先填充的变量由以下代码填充:

$outputName = $mibnode->{'label'} if (!defined($outputName));
$outputName =~ s/-/_/g;
$vars{'name'} = $outputName;
$vars{'oid'} = $oid;
$vars{'example_start'} = "    /*\n" .
"    ***************************************************\n" .
"    ***             START EXAMPLE CODE              ***\n" .
"    ***---------------------------------------------***/";
$vars{'example_end'} = "    /*\n" .
"    ***---------------------------------------------***\n" .
"    ***              END  EXAMPLE CODE              ***\n" .
"    ***************************************************/";

因此,您最终得到以下预先填充的变量:

  • $name是使用-f选项(或$mibnode->{'label'}指定的“输出前缀”,无论是什么,如果未使用-f选项),破折号用下划线代替。
  • $oidmib2c的参数值(在使用帮助中称为“mibNode”)。
  • $example_start$example_end是硬编码字符串。

就是这样。

要使用$config参数的值创建-c(如果未使用mib2c.conf选项,则为-c),您可以更改mib2c将以下内容添加到上面显示的分配中:

$vars{config} = $configfile;

或者,我相信以下内容也会创建$config,但传递给-c选项的值将以目录名称为前缀:

@perleval $vars{config} = $configfile; 0@

您可以尝试使用以下内容获取原始值(假设原始值不包含/);

@perleval $vars{config} = $configfile =~ m{([^/]+)\z}s ? $1 : undef; 0@

完全未经测试。我对SNMP或mib2c没有任何了解。