如何下载有防盗功能的资源

Gcn
Gcn
2026-03-29 / 0 评论 / 3 阅读 / 正在检测是否收录...

在我们日常浏览视频或图片时,常常遇到想要保存却发现图片源无法直接打开的情况,通常会弹出防盗提示,如下所示:
mnbrezba.png

面对这种情况,其实有一个简单的解决方法:使用 cURL 来伪造图片来源。通过 cURL 发起请求获取图片,并伪造 HTTP 请求头中的 Referer 和 User-Agent 字段,这样可以有效绕过某些网站的防盗链或访问限制。

仅需一段 PHP 代码就能轻松搞定,代码附在文末,可直接复制。

<?php
// 替换为你要下载的图片 URL
$imageUrl = "https://tvax1.sinaimg.cn/large/aeda7a57ly1hubz2jnxqoj20by0by0ta.jpg";

// 替换为伪造的 Referer 来源
$referer = "https://tvax1.sinaimg.cn/";

// 替换为伪造的 User-Agent 或使用默认值
$userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36";

// 初始化 cURL
$ch = curl_init();

// 设置 cURL 选项
curl_setopt($ch, CURLOPT_URL, $imageUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_REFERER, $referer); 
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

// 执行 cURL 请求
$imageData = curl_exec($ch);

// 检查是否有错误
if(curl_errno($ch)) {
    echo "cURL 错误: " . curl_error($ch);
} else {
    // 生成随机文件名,使用 uniqid() 函数,带上 .jpg 扩展
    $randomFileName = uniqid('image_', true) . '.jpg';
    
    // 替换为你想保存的本地路径和随机文件名
    $savePath = "images/" . $randomFileName;

    // 保存文件
    if (file_put_contents($savePath, $imageData)) {
        echo "图片下载成功,保存为: " . $savePath;
    } else {
        echo "保存图片失败";
    }
}

// 关闭 cURL 资源
curl_close($ch);
?>
0

评论 (0)

取消