Java破解图片防盗链
- 前言
今天想下载几张好看的壁纸,然后发现了一张是自己比较喜欢的额。然后点进去看看,WOW!好多好看的壁纸呀,于是我就起了贪念。哈哈!想把他们这一组图片打包下载,小白的方法就是一张一张下载,那样对于我们程序员来说是很low的办法。于是我考虑使用万能的java来下载他们的组图,花2小时鼓捣一下,但是觉得网上的文章大多是于抄袭,有些又不是很全。于是就了这篇文章,希望对各位有帮助。但不建议将此方法用作商业,因为盗用别人的图片属于违法行为!!! - 图片防盗链
很多网站为了防止别的网站盗用自己网站的图片,就是用了图片防盗链技术。也就是说,当我获取图片的url之后,直接在浏览器或者代码里访问。举个栗子:比如我想使用url要直接在浏览器中打开一张图片,但是出现的却是另外一张警告图片,里面写着:想查看图片请访问XXX网站。这就是一个典型的图片防盗链,其原理就是会在request的请求头里携带一个“referer”的变量,以此来判断该请求是从哪个链接跳转过来的。如果没有携带“referer”或者不是从本网站跳转一律返回警告或提示图片。 - 破解防盗链
知其原理,破其规律。既然咱们知道防盗链的原理,那我们可以很简单的伪装一个“referer”就可以了,也就是在请求之前先在request的header里添加一个变量为referer:http.xxx.xxxcom 也就是该网站的随意的一个url。package com.cmc.test;import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL;/*** 使用多线程下载防盗链图片* * @author chenmc* @date 2017年8月30日 下午2:39:23*/ public class DownloadPicture {public static void main(String[] args) throws InterruptedException {for (int i = 1; i <= 10; i++) {int n = i;Thread t = new Thread(){@Overridepublic synchronized void run() {try {httpRequest(n);} catch (Exception e) {e.printStackTrace();}super.run();}};t.start();}}/*** 发起http请求* * @author chenmc* @date 2017年8月30日 下午2:36:09* @param n* @throws Exception*/public static void httpRequest(int n) throws Exception {for (int i = (n-1)*5 > 1 ? (n-1)*5 : 1; i < n*5; i++) { long startTime = System.currentTimeMillis();String path = "C:/Users/admin/Pictures/壁纸/" + String.format("%03d", i) + ".jpg";//这里url写你想要下载图片的urlString uri = String.format("http://bizhi.xxx.com/rluo/%s.jpg", String.format("%03d", i));System.out.println(uri);URL url = new URL(uri); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestProperty("referer", "http://bizhi.xxx.com"); //这是破解防盗链添加的参数conn.setRequestMethod("GET"); conn.setConnectTimeout(5 * 1000); InputStream inStream = conn.getInputStream();//通过输入流获取图片数据readInputStream(inStream, path);//得到图片的二进制数据,并保存long endTime = System.currentTimeMillis();System.out.println(path + "--耗时:" + (endTime-startTime)/1000 + "s");}}/*** 保存图片* * @author chenmc* @date 2017年8月30日 下午2:35:54* @param inStream* @param path* @throws Exception*/public static void readInputStream(InputStream inStream, String path) throws Exception{ FileOutputStream fos = new FileOutputStream(new File(path));byte[] buffer = new byte[102400]; int len = 0; while( (len=inStream.read(buffer)) != -1 ){ fos.write(buffer, 0, len); } inStream.close(); fos.flush();fos.close();} }
上述例子我使用了多线程技术,因为我想下载的壁纸有247张之多,所以我使用了50个线程,每个线程下载5张。因为是自己下载壁纸用的,所以没有考虑效率之类的,这里也希望大家可以自己去改进它。
最后给大家一波福利~~~好看的夕阳壁纸1 夕阳壁纸2 因为我上传的资源限制大小为80M,所以分开上传了~因为这是图片资源,所以csdn可能会删除哦,想要的同学们尽快下载吧! - 给大家养养眼~~~
Java破解图片防盗链相关推荐
- 相册图片防盗链破解(如:在外部也能显示qq、163或百度空间图片)
相册图片防盗链破解(如:在外部也能显示qq.163或百度空间图片) 比如: http://item.taobao.com/auction/item_detail-0db1-203ddc6b8b499a ...
- php破解referer防盗链解析,Referer原理与图片防盗链实现方法详解
本文实例讲述了Referer原理与图片防盗链实现方法.分享给大家供大家参考,具体如下: 1.图片防盗链 在一些大型网站中,比如百度贴吧,该站点的图片采用了防盗链的规则,以至于使用下面代码会发生错误. ...
- 前端解决第三方图片防盗链的办法 - html referrer 访问图片资源 403 问题
问题 笔者网站的图片都是上传到第三方网站上的,比如 简书.掘金.七牛云上的,但是最近简书和掘金都开启了 防盗链,防止其他网站访问他们网站上的图片了,导致笔者的网站存在他们网站上的图片全挂了. 具体问题 ...
- php substr 去掉前n位_用PHP是如何做图片防盗链的
1.图片防盗链 在一些大型网站中,比如百度贴吧,该站点的图片采用了防盗链的规则,以至于使用下面代码会发生错误. 简单代码: <!DOCTYPE html> <html> < ...
- lnmp/nginx系统真正有效的图片防盗链完整设置详解
http://www.it300.com/article-15345.html 关于nginx防盗链的方法网上有很多教程,都可以用,但是我发现很多教程并不完整,所做的防盗链并不是真正的彻底的防盗链! ...
- Global.asax或IHttpModule实现屏蔽ip和图片防盗链
Global.asax实现屏蔽ip和图片防盗链 protected void Application_BeginRequest(object sender, EventArgs e) { //屏蔽ip ...
- 网络安全:图片防盗链的实现原理
来自:掘金,作者:chenhongdong 链接:https://juejin.im/post/5adc0d03518825673a2022b7 前言 防盗链,就是防有人盗用你的链接.别人在他的网站上 ...
- django21:admin后台管理\media配置\图片防盗链\暴露后端资源\路由分发\时间分类
admin后台管理 创建超级用户 createsuperuser 1.到应用下的admin.py注册模型表 from django.contrib import admin from blog imp ...
- ASP.NET中利用ashx实现图片防盗链
盗链的危害我就不说了,网上有很多. 直接分析盗链原理:看下面用httpwatch截获的http发送的数据 GET /Img.ashx?img=svn_work.gif HTTP/1.1 Accept: ...
最新文章
- mysql --initalize_MySQL初始化设置
- Oracle归档日志删除
- 解决AJAX CalendarExtender控件不显示中文的情况(转帖博客园某人(不好意思,实在是没有找到您的尊姓大名,感谢一下!))...
- 深度剖析Apache Shardingsphere对分布式事务的支持
- Spring综合课程总结
- 红橙Darren视频笔记 自定义RatingBar touch事件学习 dp转px listener监听
- 14 exec/fork/wait cycles for Process Management
- Android五天乐(第三天)ListFragment与ViewPager
- javascript设计模式-抽象工厂模式
- 【图像处理】MATLAB:直方图
- 为 WE 打 Call!
- Linux chapter test 10
- GD32芯片包下载和安装教程
- 实现音视频编解码工具 MediaCodec 创建解码器
- 【LRC动态歌词制作—B站音频】“清新的小女孩-July Tun”为例
- python单位根检验平稳性怎么看是否平稳_PYthon ADF 单位根检验 如何查看结果
- Identifying Encrypted Malware Traffic with Contextual Flow Data
- 神舟笔记本键盘灯不亮驱动
- Paper | Detail-revealing Deep Video Super-resolution
- 实时语音变声技术原理解析:“大叔变小萝莉”
热门文章
- 相机删除自动闪光灯。桌面删除搜索框(google)等。预置应用可卸载。
- scip指令集_明年1月实施!ECHA对输欧物品提出SCIP通报要求
- 通过vi服务器运行vi,动态改变界面改变VI的属性KCC.ppt
- Java语言编码规范(Java Code Conventions)
- 速卖通、Lazada、Shopee需要补单吗?怎么补才安全
- 苹果Mac系统无法输入密码怎样解决
- decode解码 geohash_Geohash算法原理及实现
- 计算机基础课目录,计算机基础课程Word目录自动生成机制
- JDO 与 Hibernate
- 联想凌拓:谁更如愿以偿呢?