【问题标题】:scrape url from a page using visitor ip使用访问者 ip 从页面中抓取 url
【发布时间】:2018-05-31 09:59:24
【问题描述】:

我使用以下代码为网站的视频网址制作 get_file_contents:

<?php $get = file_get_contents("https://vidhd.net/embed-bc3c7z8e8pmt.html");
    $regex = '/(https|http)[^"]*(?=",label)/';
    if (preg_match_all($regex, $get, $allurlget)){
     foreach($allurlget[0] as $getlist) {
          $TakeJsonToList[] = $getlist;}
           if (count($TakeJsonToList) == 3){
               $Makejson =  array ('p720' => $TakeJsonToList[0],
                                    'p480' => $TakeJsonToList[1],
                                    'p360' => $TakeJsonToList[2]);
          }else if (count($TakeJsonToList) == 2){
               $Makejson =  array ('p720' => $TakeJsonToList[0],
                                    'p480' => $TakeJsonToList[1]);
          }else{
               $Makejson =  array ('p720' => $TakeJsonToList[0]);
          }
    echo json_encode($Makejson);}
        else{
            $filenotfound = 'Url Not Found';
            $error = json_encode(array('error'=> $filenotfound));
        echo ($error);
    }

现在我将输出作为 json 像这样:

{"p720":"https:\/\/s4.vidhd.net\/kmxssvaapjumwmesrlvuyy72hjmxnedreq2ahr5kil6qqt373orzkuun4ccq\/v.mp4","p480":"https:\/\/s4.vidhd.net\/kmxssvaapjumwmesrlvuyy72hjmxnedreq2ahr5kiriqqt373or7r273xqrq\/v.mp4"}

但是当我向另一个网站“Vidhd”提出请求时 用我的网站 ip 制作视频网址。 所以当我播放视频时,我得到了错误的 ip !是的,因为 url ip 是我的网站 ip 而不是我的电脑 ip 我需要的 ? 我需要使用访问者 ip 而不是服务器 ip 发出请求。谢谢。

【问题讨论】:

    标签: php curl scrape


    【解决方案1】:

    从 vidhd.net 的角度来看,用于获取视频的 ip(通过直接视频文件 url)必须与请求视频的 ip 相同。所以要么直接从 php 流式传输视频(例如,使用 readfile()),或者直接从访问者的 ip 获取视频 url(例如,通过 javascript/XMLHttpRequest)

    第一种方法有使用更多带宽的缺点,因为必须将整个视频下载到您的服务器并提供给客户端,使您的服务器的带宽使用量是电影的 2*size。第二种方法的缺点是你可能会遇到 CORS restrictions 从 javascript 执行此操作,除非 vidhd 通过 CORS-Allow headers 明确允许 CORS 请求,并且根据 curl,它们不会:

    $ curl -I https://vidhd.net/embed-bc3c7z8e8pmt.html
    HTTP/1.1 200 OK
    Server: nginx
    Date: Thu, 31 May 2018 13:25:56 GMT
    Content-Type: text/html; charset=UTF-8
    Connection: keep-alive
    Expires: Wed, 30 May 2018 13:25:56 GMT
    X-frame-options: 1
    X-Content-Type-Options: nosniff
    X-XSS-Protection: 1; mode=block
    X-Content-Type-Options: nosniff
    X-XSS-Protection: 1; mode=block
    

    虽然你可能只使用 iframe,除非他们阻止 iframe,谁知道呢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-27
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 2017-08-13
      • 2018-02-11
      • 1970-01-01
      相关资源
      最近更新 更多