javascript - 使用 php curl 函数处理弹出登录窗口(netgear 路由器)

标签 javascript php html curl basic-authentication

我已经弄清楚如何使用 php curl 函数自动登录 2 个不同的 radio ,但在使用 netgear 路由器时遇到了问题。

问题是它的登录屏幕由一个弹出窗口组成,您可以在其中输入用户/密码,但我不知道如何使用 php curl 函数来处理它。
我尝试添加
curl_setopt($ch, CURLOPT_USERPWD, "用户名:密码");
正如对 this question post 的回答中所建议的那样, 但它只是返回了一个“无效登录”屏幕(之前,它会在此时挂起,所以我认为这是一个改进)。

我也尝试添加两者
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);

更新(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);

最佳答案

终于明白了!我需要的最后一件事是 curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY),我必须通过一次尝试一个设置来获得它(请参阅问题编辑中的完整答案)。感谢您提供所有有用的建议。

关于javascript - 使用 php curl 函数处理弹出登录窗口(netgear 路由器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41469697/

相关文章:

javascript - 使用 vanilla JS XMLhttprequest 对象向 Rails 发送 "Post"请求

javascript - 如何使用正则表达式和 '\' 字符正确解析 JSON?

php - 负载平衡 Web 服务器上的 Cron 任务

php - Symfony2 禁用 HTML5 表单验证

html - 如何使用css使内圆居中

javascript - 语义 UI - 搜索选择不起作用

javascript - 在导航菜单上的列表项下方滑动图像图标

PHP 未在 MySQL 表中插入多个数据

html - CKEditor仅显示HTML内容

javascript - 使用ajax和bootbox进行非法调用