多个snmp开放端口

时间:2015-06-25 08:47:15

标签: php printing snmp printers network-printers

我遇到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端口,而根本不设置。

enter image description here

如何为所有打印机添加端口161?现在我只能看到一台带有SNMP的打印机,但我需要查看所有打印机。

1 个答案:

答案 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的传入端口

冲洗并重复使用尽可能多的打印机。