Я выяснил, как использовать функции curl php для автоматического входа в 2 разных радиостанции, но у меня проблемы с маршрутизаторами netgear.
Проблема заключается в том, что его экран входа в систему состоит из всплывающего окна, в которое вы вводите пользователя/пароль, и я не могу понять, как обрабатывать его с помощью функций curl php.
Я попытался добавить
curl_setopt($ch, CURLOPT_USERPWD, "username:password");
как предложено в ответ на this question post, , но он просто вернул «неверный логин» экран (раньше, было бы просто повесить на данный момент, так что я предполагаю, что это улучшение).Использование функций php curl для обработки всплывающего окна входа (маршрутизатор netgear)
Я также попытался добавить как
curl_setopt($curl_conn, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
и
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
перед ним и поворачивая CURLOPT_FOLLOWLOCATION и выключаться, но тот же результат.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $LoginPage);//IP Address followed by :8080
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($curl_conn, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, $Username . ":" . $Password);
$data = curl_exec($ch);
Update (2018/2/5):
Следующая дал мне часть страницы настроек маршрутизатора! Я, вероятно, придется возиться с HTML/JavaScript, чтобы получить остальное ...
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);//10 seconds
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);//kept trying options till it worked
curl_setopt($ch, CURLOPT_USERPWD, "$Username:$Password");
$result = curl_exec($ch);
//$resultStatus = curl_getinfo($ch);
//print 'ResultStatus:'.print_r($resultStatus) . "<br>";
curl_close($ch);
echo($result);
Необходимо использовать поле аутентификации заголовка запроса на отправку. Я отправлю полный ответ, как только у меня будет время для этого. –
Возможный дубликат [Как сделать запрос с использованием базовой проверки подлинности HTTP с помощью PHP curl?] (Http://stackoverflow.com/questions/2140419/how-do-i-make-a-request-using-http-basic -authentication-with-php-curl) –
Интересно, если [предложение Бармара] (https://stackoverflow.com/questions/48548667/php-script-to-automatically-log-into-browsers-native-login-prompt# comment84093757_48548667) использования формата 'username: password' в URL (т. е.' https: // имя пользователя: пароль @ www.routerlogin.net') будет работать ... –