baihaideng 发表于 2020-9-27 10:59:45

多个网站图片设置了防盗链 怎样写盗链代码

本帖最后由 baihaideng 于 2020-9-27 11:01 编辑

列如:

本网站 https://www.im286.net/

盗链几十个网站图片 https://www.a.net/ https://www.b.net/ https://www.c.net/ https://www.d.net/ ...


调用:getimg.php

https://www.im286.net/getimg.php?url=https://www.a.net/...jpg
https://www.im286.net/getimga.php?url=https://www.b.net/...jpg
https://www.im286.net/getimgb.php?url=https://www.c.net/...jpg
https://www.im286.net/getimgc.php?url=https://www.d.net/...jpg

getimg.php代码:



<?php
$url = null;
if(count($_GET) > 1){
    foreach ($_GET as $key => $v) {
      if($key != 'url'){
            $url .= '&'.$key.'='.$v;
      }else{
            $url .= $v;
      }
    }
}else{
    $url = $_GET['url'];
}
//伪造 网址 referer
$refer = 'http://www.a.net';
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_REFERER, $refer);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
header("Content-type: image/jpeg");
print($data);
?>


但这个代码只能盗链一个,除非分别写几十个getimg.php getimga.phpgetimgb.phpgetimgc.php


这样太麻烦了。


有没有办法把所有网址写入一个getimg.php里面?

ts99 发表于 2020-9-27 11:21:55

相关技术大牛来解决。。:ohh::ohh::ohh:

优酷网 发表于 2020-9-27 12:11:19

反向代理 自动拉取下载图片对应目录
我就这样做的 缺点是要保存到本地

娃哈哈 发表于 2020-9-27 12:31:25

传$refer = 'http://www.a.net';    $refer = $url 进去啊

baihaideng 发表于 2020-9-27 12:54:19

本帖最后由 baihaideng 于 2020-9-27 12:58 编辑

娃哈哈 发表于 2020-9-27 12:31
传$refer = 'http://www.a.net';    $refer = $url 进去啊

是这样码?

<?php
$url = null;
if(count($_GET) > 1){
    foreach ($_GET as $key => $v) {
      if($key != 'url'){
            $url .= '&'.$key.'='.$v;
      }else{
            $url .= $v;
      }
    }
}else{
    $url = $_GET['url'];
}
//伪造 网址 referer
$refer = 'http://www.a.net';
$refer = 'http://www.b.net';
$refer = 'http://www.c.net';
$refer = 'http://www.d.net';
$refer = 'http://www.e.net';   
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_REFERER, $refer);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
header("Content-type: image/jpeg");
print($data);
?>


-------------------刚试了,这样写没有用,只能调用www.a.net的,b,c,d等均不行-------------------

豆蔻年华 发表于 2020-9-27 12:57:28

baihaideng 发表于 2020-9-27 12:54
是这样码?

不是,直接照他写的那样写,很可能就可以了。
即来源URL和目标URL相同。

baihaideng 发表于 2020-9-27 13:00:32

豆蔻年华 发表于 2020-9-27 12:57
不是,直接照他写的那样写,很可能就可以了。
即来源URL和目标URL相同。

我的意思是所有域名写进一个PHP, 不要一个域名写一个PHP。。。

豆蔻年华 发表于 2020-9-27 13:04:23

baihaideng 发表于 2020-9-27 13:00
我的意思是所有域名写进一个PHP, 不要一个域名写一个PHP。。。

就是这意思,把你红色的部分(多行),改为 $refer = $url 。应该就能通用了。

baihaideng 发表于 2020-9-27 13:05:14

本帖最后由 baihaideng 于 2020-9-27 13:30 编辑

豆蔻年华 发表于 2020-9-27 13:04
就是这意思,把你红色的部分(多行),改为 $refer = $url 。应该就能通用了。

我试试,3Q



----------------------------不行,显示不了,改成www.baidu.com 可以了-------------------------

jjhh 发表于 2020-9-27 23:10:56

echo $url;
把你的url输出看看,对应调整
然后
$refer = $url;
页: [1] 2
查看完整版本: 多个网站图片设置了防盗链 怎样写盗链代码