提问人:wolfphp22 提问时间:6/25/2015 最后编辑:Zongwolfphp22 更新时间:9/11/2015 访问量:664
多个 snmp 开放端口
Multiple snmp open port
问:
我的SNMP有问题。我使用以下代码连接到带有PHP的SNMP:
<?php
$session = new SNMP(SNMP::VERSION_1, "xxx.xxx.xxx.xxx", "public");
$fulltree = $session->walk(".");
print_r($fulltree);
echo "<br>";
$session->close();
?>
代码运行良好,这不是问题。问题是我可以有更多的IP连接到SNMP吗?我有一个防火墙 (ZyWALL),可以有 4 台打印机。出现此问题的原因是,我只能在一台打印机上设置 161 端口,而根本无法设置。
如何为所有打印机添加端口 161?现在我只能看到一台带有SNMP的打印机,但我需要看到所有打印机。
答:
0赞
Alex Andrei
6/25/2015
#1
选项 1 是显式传递端口(如果它不是默认的 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 的传入端口
冲洗并重复您拥有的尽可能多的打印机。
评论
0赞
wolfphp22
6/25/2015
在此模式下不起作用。例如,如果我将端口 5691 替换为 161 在 192.168.1.204 处,它就会起作用。之后,如果我调用新的SNMP(),防火墙我会看到打印机的SNMP可以在本地正确使用192.168.1.204。
0赞
Alex Andrei
6/25/2015
打印机的 IP 是什么?他们是 192.168.1.204 的幕后黑手吗?还有您从哪个 IP 运行 php 脚本?
0赞
wolfphp22
6/25/2015
例如,如果我写 ip.xxxxxx.com:5960 我会看到打印机。在php中之后,我调用 ip.xxxxxx.com 主机的ip。在我的防火墙中,ip 5960 上的端口 192.168.1.204 重定向到 80,我可以看到打印机。如果我将 ip 5961 的端口 192.168.1.204 替换为 161,我可以通过 SNMP 正确连接。问题来了,因为我有更多的 ip 可以拥有端口 161。
0赞
Alex Andrei
6/25/2015
我只是编辑了我的答案,但它将有助于了解网络拓扑以及您从哪里调用脚本。如果 192.168.1.204 和 1.202 打印机以及 5550 和 5560 在内部映射到端口 80。然后只需将不同的端口(如 6561 和 6562)分别映射到内部端口 161。
0赞
wolfphp22
6/25/2015
这继续不起作用。只有当我在原始端口和映射端口中设置 161 时,我才能看到打印机。例如,如果我在原始端口和映射端口 6678 中设置了 161,则不起作用。为什么?我要疯了。谢谢你的帮助
评论