我遇到SNMP问题。我使用以下代码连接到PHP:
<?php
$session = new SNMP(SNMP::VERSION_1, "xxx.xxx.xxx.xxx", "public");
$fulltree = $session->walk(".");
print_r($fulltree);
echo "<br>";
$session->close();
?>
代码完美无缺,不是问题所在。问题是我可以拥有更多需要与SNMP连接的IP。我有防火墙(ZyWALL),可以有4台打印机。出现此问题的原因是我只能在一台打印机上设置161端口,而根本不设置。
如何为所有打印机添加端口161?现在我只能看到一台带有SNMP的打印机,但我需要查看所有打印机。
答案 0 :(得分:0)
选项1是pass the port explicitly,如果它不是默认值161
$sessionA = new SNMP(SNMP::VERSION_1, "192.168.1.204", "public"); //for port 161
$sessionB = new SNMP(SNMP::VERSION_1, "192.168.1.204:162", "public"); //for port 162
选项2,取决于您的网络设置,是为每台打印机分配不同的IP,以便您可以为每台打印机轮询端口161
您需要根据访问打印机的规则正确设置防火墙规则。
所以如果你有4台打印机都直接在防火墙后面,每台打印机都有自己的IP地址,你可以在防火墙上映射不同的传入端口,指向每个打印机的161端口。
然后,您将打开这样的SNMP会话$sessionA = new SNMP(SNMP::VERSION_1, "public.firewall.ip.address:port1", "public");
用于打印机A,其中port1是防火墙上指向打印机上的161的传入端口
冲洗并重复使用尽可能多的打印机。