• Как считать текст с вэб-интерфейса принтера?

    @oleksenn Автор вопроса
    Почитал мануал на curl, поисследовал в интернете мировой опыт по своему вопросу. Также с помощью F12 в браузере создал список линков, которые генерируются Java-скриптами на интерфейсе моего принтера. Вот код интерфейса принтера:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
    <!------------------------------------------------------------------------->
    <!-- Copyright (C) 2011 KYOCERA MITA Corporation.                        -->
    <!-- All rights reserved.                                                -->
    <!------------------------------------------------------------------------->
    <html dir="ltr">
    <head>
    
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="Content-Style-Type" content="text/css">
    <meta http-equiv="Content-Script-Type" content="text/javascript">
    <meta name="viewport" content="width=device-width, minimum-scale=0.1, maximum-scale=5.0, user-scalable=yes"/>
    
    <script src="../js/lib/knockout-2.3.0.js"></script>
    <script src="../strings/stub/stub.js"></script>
    
    <script src="../js/jssrc/base.js"></script>
    <script src="../js/jssrc/model/wlmeng/index.model.htm"></script>
    <script src="../js/jssrc/view_model/wlmeng/index.viewmodel.js"></script>
    
    </head>
    
    <frameset border="0" frameborder="no" framespacing="0">
    <frame name="wlmframe" src="../startwlm/Start_Wlm.htm" />
    </frameset>
    
    </html>


    А вот список линков, которые генерируются 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)" - правильно ли я понял, что именно он отвечает за исправление этой проблеммы. Но, скорее всего, я прописал его неверно.
    Прошу тех, кого интерес к моему вопросу еще не иссяк, подредактировать мой скрипт или сориентировать на какую-то статью, которая от меня ускользнула.
  • Как считать текст с вэб-интерфейса принтера?

    @oleksenn Автор вопроса
    Спасибо, Олег, за подачу направления мышления. Выяснил, что в процессе открытия страницы действительно формируются куки:

    Array ( [0] => rtl=0; path=/; )

    Пробую дальше строить скрипт с curl'ом с учетом кук. Если кто-то может написать такой скрипт быстрее, чем я, то прошу его сюда вписать.
  • Как считать текст с вэб-интерфейса принтера?

    @oleksenn Автор вопроса
    Спасибо за Ваше внимание к моему вопросу. SNMP-протокол хорош, но не до конца подходит для решения моих задач. Иногда надо считать специфические параметры печати, отступы бумаги, например.
  • Как считать текст с вэб-интерфейса принтера?

    @oleksenn Автор вопроса
    Уже пробовал, но попробую еще...