Возможно ли на PHP написать какой-нибудь скрипт для входа на сайт роутера (192.168.1.1), ввод логина и пароля: admin, и нажатие определённой button-кнопки? Слышал через Curl можно как-то, может кто подскажет образец кода? P.S. роутер Sagemcom (Ростелеком).
Ну...чисто технически ты можешь свой 192.168.1.1 роутера вытащить наружу мордой. Можешь даже доменное имя к нему прикрутить. И все через настройки самого роутера. Но будь готов, что все может пойти не так и ты будешь сильно опечален.
PHP: $login_url = 'http://192.168.1.1'; $login = "ваш логин"; $pass = "ваш пас"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$login_url); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $postLoginFields = array(); $postLoginFields['login'] = $login; //$postLoginFields['login'] - login - это name инпута login $postLoginFields['pass'] = $pass; //$postLoginFields['pass'] - pass это name инпута pass curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postLoginFields)); $output = curl_exec($ch); //здесь получите страницу после аутентификации
Тогда какой смысл в этом скрипте, если в локальной сети я могу просто постучаться на 192.168.1.1 напрямую и роутер мне ответит сам? Зачем, будучи в одной подсети, городить прокси между узлами?
@servitpol, попробовал на Open Server - пустая страница (расширение curl включил). Но в чём больше прикол, сама форма авторизации использует метод POST, а при входе только GET запросы, в которых логин и пароль не хранится. Код формы: HTML: <!DOCTYPE HTML> <html> <head> <title>Router</title> <meta HTTP-EQUIV="Pragma" CONTENT="no-cache"> <meta http-equiv=Content-Type content="text/html; charset=UTF-8"> <link rel="stylesheet" href="reset.css"> <link rel="stylesheet" href="base.css"> <link rel="stylesheet" href="style.css"> <script language=javascript> function onlogin() { if(document.test.username.value.length <= 0) { alert("Пожалуйста, введите имя пользователя!"); document.test.username.focus(); return false; } if(document.test.password.value.length <= 0) { alert("Пожалуйста, введите пароль!"); document.test.password.focus(); return false; } return true; } function frmLoad() { document.test.username.focus(); } </script> </head> <body onload=frmLoad() id="login_body"> <form action="login.cgi" method=POST name="test" autocomplete="off" > <div class="loginBox"> <div class="login_left_bg"></div> <div class="loginCtr"> <h2>Авторизация</h2> <table> <tr> <td>Имя пользователя:</td> <td><input type="text" id="username" name="username" maxlength="64"></td> </tr> <tr> <td>Пароль:</td> <td><input name="password" id="password" type="password" maxlength="64"></td> </tr> </table> <div class="login_btn"> <input id="loginBtn" onclick="return onlogin()" type="submit" value="Войти" class="link_bg"> <input id="rewBtn" type="reset" value="Сбросить" class="link_bg" autocomplete="off" > <input type="hidden" name="submit.htm?login.htm" value="Send"> </div> </div> <div class="login_right_bg"></div> </div> </form> </body> </html> --- Добавлено --- Хочу упростить жизнь. Чуть ли не каждый день приходится заходить в настройки роутера, каждый раз вводить логин и пароль (пусть они и сохранены в браузере), вот я и подумал, нельзя ли через скрипт сразу авторизовываться, чтобы лишние 5 сек. не терять. Да и ради практики, интересно.
Чувак, ты из скрипта "авторизуешь" скрипт, а потом войдёшь в браузер - придётся опять пароль вводить. Поскольку когда заходит туда скрипт, клиент он, а не браузер, в браузер никакие куки, флаги и т.п. не идут.
В виде расширения браузера. Но такие уже есть, в принципе. Last Pass какой-нибудь --- Добавлено --- [offtop] Интересно, а нафига тебе каждый день входить в настройки роутера? Я туда вхожу изредка, пароль поменять [/offtop]
чтоб переподключаться для смены ip. Провайдер (днище) даёт 2 диапазона на выбор (меняются раз в сутки) , и на одном из-них очень медленная скорость. С ними связывался, сказали, что либо - покупайте статический ip, либо пока что никак. (неполадки на сервере).
Иногда, к примеру, невозможно понять, почему не работает твоя программа именно на хостинге клиента, а на локалке и тестовом сервере всё в порядке. Тогда можно вставить отладочные инструкции, которые исполняются только для твоего ip, а остальные посетители видят сайт нормально. Или, к примеру, запустить отладочный плагин фреймворка именно для твоего ip, и увидеть в чём дело. Ещё некоторые хостинги ставят ограничение по IP.
То же самое можно делать для учетной записи, используя ник в качестве идентификатора. Либо проксироваться через VPNку на своей VPSке, если хочешь привязываться к IP, ну там..я ж понимаю, что xdebug тот же без IP не прокинуть и все такое. Так-то дело личное, конечно, но я б статику домой цеплять не стал.