Почитал мануал на curl, поисследовал в интернете мировой опыт по своему вопросу. Также с помощью F12 в браузере создал список линков, которые генерируются Java-скриптами на интерфейсе моего принтера. Вот код интерфейса принтера:
Учитывая, что среди куков есть параметр "path=/", предполагаю, что сервер принтера читает их как с локального ресурса, поэтому в браузере (равно как и в curl'е) они недоступны и выдают 404 Not Found.
В скрипте я пытался использовать параметр "curl_setopt($ch, CURLOPT_RESOLVE)" - правильно ли я понял, что именно он отвечает за исправление этой проблеммы. Но, скорее всего, я прописал его неверно.
Прошу тех, кого интерес к моему вопросу еще не иссяк, подредактировать мой скрипт или сориентировать на какую-то статью, которая от меня ускользнула.
Спасибо за Ваше внимание к моему вопросу. SNMP-протокол хорош, но не до конца подходит для решения моих задач. Иногда надо считать специфические параметры печати, отступы бумаги, например.
А вот список линков, которые генерируются Java-скриптами на интерфейсе моего принтера. Они выглядят классически:
http://х.х.х.х/js/jssrc/model/startwlm/Hme_DvcSts....
http://х.х.х.х/js/jssrc/model/startwlm/Hme_Toner.m...
http://х.х.х.х/startwlm/Start_Wlm.htm?arg11=
http://х.х.х.х/startwlm/Hme_DvcSts.htm
http://х.х.х.х/startwlm/Hme_Synchronize.htm
http://х.х.х.х/startwlm/Hme_Toner.htm
http://х.х.х.х/startwlm/Hme_PnlUsg.htm
http://х.х.х.х/startwlm/Hme_Paper.htm
Я пытался читать все эти линки скриптом:
<?php
$ch = curl_init('http://х.х.х.х/startwlm/Hme_Toner.htm');
curl_setopt($ch, CURLOPT_RESOLVE, ['localhost:80:127.0.0.1']);
curl_setopt($ch, CURLOPT_COOKIEJAR, __DIR__ . '/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, __DIR__ . '/cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, true);
$html = curl_exec($ch);
curl_close($ch);
echo $html;
?>
Учитывая, что среди куков есть параметр "path=/", предполагаю, что сервер принтера читает их как с локального ресурса, поэтому в браузере (равно как и в curl'е) они недоступны и выдают 404 Not Found.
В скрипте я пытался использовать параметр "curl_setopt($ch, CURLOPT_RESOLVE)" - правильно ли я понял, что именно он отвечает за исправление этой проблеммы. Но, скорее всего, я прописал его неверно.
Прошу тех, кого интерес к моему вопросу еще не иссяк, подредактировать мой скрипт или сориентировать на какую-то статью, которая от меня ускользнула.