卷曲PHP获取HLS返回403 Forbidden

时间:2014-11-18 07:41:27

标签: php curl hls

我试图在其他网站上获取HLS流,但是它们总是返回403 Forbidden :(这是我的功能,它在localhost上运行良好,但在我的服务器中运行不正确。

function getPage($url, $referer, $header){ 
    $timeout=30; 
    $curl = curl_init(); 
    if(strstr($referer,"://")){
        curl_setopt ($curl, CURLOPT_REFERER, $referer); 
    }
    curl_setopt ($curl, CURLOPT_URL, $url); 
    curl_setopt ($curl, CURLOPT_TIMEOUT, $timeout); 
    curl_setopt ($curl, CURLOPT_USERAGENT, sprintf("Mozilla/%d.0",rand(4,5))); 
    curl_setopt ($curl, CURLOPT_HEADER, $header); 
    curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);
    $html = curl_exec ($curl); 
    curl_close ($curl); 
    return $html;
}

echo getPage("http://www.wezatv.com/dooball/assp1.php", "http://www.wezatv.com/", 1);

任何人都可以帮助我?

谢谢,

2 个答案:

答案 0 :(得分:0)

确保您的服务器IP不是IP
使用curl代理进行测试,
您的链接http://www.wezatv.com/dooball/assp1.php在我的服务器上正常运行

答案 1 :(得分:0)

您的代码100%正确,我认为问题是您的服务器阻止了该请求或目标服务器阻止了您的服务器的IP

  • 确保您的服务器不会阻止端口80上的输出连接
  • 如果没有防火墙,您是否可以尝试执行命令“wget http://www.wezatv.com/dooball/assp1.php”以查看是否可以下载内容?如果它也无法获取包含错误代码的内容为403,则表示服务器wezatv.com阻止了来自您服务器的每个请求。

如果在短时间内发现了太多请求,某些服务器会临时阻止每个请求。因此,如果您想要抓住它的数据,您应该减少请求的数量,例如实现延迟