Както знаете от доста време едни dreambox-ове ми вгорчават живота 🙂 Понякога забива CAM модула без видима причина и се налага рестарта му или понякога дори на целия приемник. Общо взето приемниците имат добър уеб интерфеис за оправление и всичко се прави лесно през него, НО (голямо но) е възможно да го позлвам само когато съм в офиса защото съм ги скрил зад рутера там. Като цяло единствения вариант за контрол оставаше да се ssh-на към рутиращата машина и след това към приемниците с telnet. Обаче наскоро разбрах че приемниците могат да приемат команди от външни скриптове рефлектиращи върху cgi-bin директорията. Примерно/cgi-bin/admin?command=reboot ще рестартира приемника. Супер нали 😉 Като цяло надращих набързо едно php с което да изпълнявам команди по приемниците, НО имах още един приблем – автентификацията. През уеб иска потребителско име и парола – нормално нещо но щеше да отнеме доста писане ако не ми бяха дали идеята да пробвам по стария начин за оторизация с подаване на информация в url http://root:dreambox@dreambox/cgi-bin/admin?command=reboot и сработи 🙂 от тук нататък нещата са ясни 🙂
function exe_command($dreambox,$command){ $result = @fsockopen("$dreambox", 80 , $errno, $errstr, 4); //check if dreambox is accessble ovear lan if($result) { echo "Command executed for $dreambox"; @fopen("http://root:dreambox@$dreambox$command","r"); do_form($dreambox); }else{ echo "Bad no access to $dreambox"; do_form($dreambox); } }
Това ми е основната фукнция в контрол панела другото са валидизациия на променливи и хтмл генератори.
ps Ето го и почти пълен списък с командите които подържа приемника 🙂 Също така може да се имитират и натискания на бутони пак с подобни команди 🙂 ако някои е заинтересован да свирка