【问题标题】:Multiple snmp open port多个snmp开放端口
【发布时间】:2015-06-25 08:47:14
【问题描述】:

我的 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();
?>

代码完美运行,这不是问题。问题是我能否拥有更多需要与 SNMP 连接的 IP。我有防火墙(ZyWALL),可以有 4 台打印机。出现问题是因为我只能在一台打印机上设置 161 端口,而根本不能。

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

【问题讨论】:

    标签: php printing snmp printers network-printers


    【解决方案1】:

    如果不是默认的 161,选项 1 是 pass the port explicitly

    $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

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

    【讨论】:

    • 在这种模式下不起作用。例如,如果我用 192.168.1.204 的 161 替换端口 5691,它就可以工作。之后,如果我调用 new SNMP() 防火墙,我会看到打印机的 snmp 可以在本地正确拥有 192.168.1.204。
    • 打印机的 IP 是什么?他们在 192.168.1.204 后面吗?您还从哪个 IP 运行 php 脚本?
    • 例如,如果我写 ip.xxxxxx.com:5960 我会看到打印机。在 php 之后,我调用 ip.xxxxxx.com 主机的 ip。在我的防火墙中,ip 192.168.1.204 上的端口 5960 重定向到 80,我可以看到打印机。如果我用 161 替换 ip 192.168.1.204 的端口 5961,我可以通过 SNMP 正确连接。问题来了,因为我有更多的 ip 可能需要端口 161。
    • 我刚刚编辑了我的答案,但这将有助于了解网络拓扑以及您从何处调用脚本。如果 192.168.1.204 和 1.202 打印机以及 5550 和 5560 在内部映射到端口 80。然后只需在内部将不同的端口(如 6561 和 6562)分别映射到端口 161。
    • 这继续不起作用。只有当我在原始端口和映射端口中设置 161 时,我才能看到打印机。例如,如果我在原始端口和映射端口 161 中设置 6678,则不工作。为什么?我要疯了。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多