У меня проблема с моим кодом PHP. У меня есть брандмауэр (ZyWALL), и я могу иметь 4 принтера. Проблема возникает потому, что я могу установить порт 161 (SNMP) только на одном принтере, а не на всех.
Это экран моего ZyWall:
И это мой PHP-код:
<?php
$session = new SNMP(SNMP::VERSION_1, "xxx.xxx.xxx.xxx", "public");
$fulltree = $session->walk(".");
print_r($fulltree);
echo "<br>";
$session->close();
?>
Если я установил в своем ZyWall IP-адрес: 192.168.1.204, Исходный порт = 161 и Отображенный порт = 161, а в моем коде php я заменил xxx.xxx.xxx.xxx на правильный IP-адрес с или без «: 161», это работает отлично.
Проблема возникает потому, что у меня есть плюс одного принтера. Если, например, я установил в своем ZyWall IP-адрес: 192.168.1.204, Исходный порт = 6000 и Отображенный порт = 161, а в своем коде php я заменил xxx.xxx.xxx.xxx на правильный ip на «: 6000», это не работает
Каждый может объяснить мне, где ошибка? Спасибо
Вы можете установить порт для подключения SNMP, как показано в этом вопрос:
$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
Других решений пока нет …