解决就给100分

bzhi268 2010-01-17 05:24:45
...全文
248 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
hujing19880618 2010-01-18
  • 打赏
  • 举报
回复
狂顶
验证码识别 2010-01-17
  • 打赏
  • 举报
回复
通过HTTP协议获取图片

之所以直接在浏览器上打开不能正确获取图片,是因为为HTTP协议里面有个refer信息(表示从那个页面来的连接),直接打开,这个信息没有

而从页面打开,这个是网页地址

发送HTTP消息时去图片时,把这个设置为网页地址,就能得到正确的图片了

如果你以上看不懂,没人能帮你了

mngzilin 2010-01-17
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 jxyxhz 的回复:]
关键人家可能是要获取真实的地址拿去做链接。。你这时候怎么办?
[/Quote]

这个更简单了,咱们也来个img.aspx页面用byte流输出图片,在输出的页面加上伪造的http-refer
小_虎 2010-01-17
  • 打赏
  • 举报
回复
关键人家可能是要获取真实的地址拿去做链接。。你这时候怎么办?
小_虎 2010-01-17
  • 打赏
  • 举报
回复
强悍的海风不需要解释。。。
newdigitime 2010-01-17
  • 打赏
  • 举报
回复
string targetUrl = http://www.xxx.com/xyz.jpg //你自己定
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(targetUrl);
request.Method = "get";
request.Referer = "http://www.xxx.com";//关键
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
newdigitime 2010-01-17
  • 打赏
  • 举报
回复
只要你伪造一个HTTP_REFER即可 ,即判断你在哪个域下请求读取这个图片.

用webclient.request,添加一个http_refer头,填上对方的域名.
mngzilin 2010-01-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ckl881003 的回复:]
如果有COOKIES验证怎么办。。是不是应该先获取下COOKIES。。然后在抓图
[/Quote]

放心,和cookies没有关系
ckl881003 2010-01-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 mngzilin 的回复:]
成功获取到:
C# codeHttpWebRequest request= (HttpWebRequest)WebRequest.Create("http://pic.188pay.com/showpic.asp?pid=39235p0");//moviePath为图片的真实URLrequest.Method="GET";
request.Referer="http://www.188pay.com/product_view.asp?id=7752";//伪造网址request.UserAgent="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR .0.04506; InfoPath.2)";//指定请求的User Agent属性HttpWebResponse response= request.GetResponse()as HttpWebResponse;
Stream responseStream= response.GetResponseStream();
System.Drawing.Image img= System.Drawing.Image.FromStream(responseStream);
img.Save("C:\\1.bmp");//保存到C盘responseStream.Close();
response.Close();
[/Quote]
如果有COOKIES验证怎么办。。是不是应该先获取下COOKIES。。然后在抓图
mngzilin 2010-01-17
  • 打赏
  • 举报
回复
引入命名空间
using System.Net;
using System.IO;
mngzilin 2010-01-17
  • 打赏
  • 举报
回复
记得100分哦
mngzilin 2010-01-17
  • 打赏
  • 举报
回复
成功获取到:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://pic.188pay.com/showpic.asp?pid=39235p0 ");//moviePath为图片的真实URL  
request.Method = "GET";
request.Referer="http://www.188pay.com/product_view.asp?id=7752";//伪造网址
request.UserAgent ="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR .0.04506; InfoPath.2)";//指定请求的User Agent属性
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
Stream responseStream = response.GetResponseStream();
System.Drawing.Image img = System.Drawing.Image.FromStream(responseStream);
img.Save("C:\\1.bmp");//保存到C盘
responseStream.Close();
response.Close();
ckl881003 2010-01-17
  • 打赏
  • 举报
回复
只要你能对外访问,那就不可能完全防止盗链。。只能增加盗链的难度
bzhi268 2010-01-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jxyxhz 的回复:]
比如图片的src链接到一个一个Showimg.aspx页面,而这个页面通过传过来的ID

去把对应的图片转换为二进制输出,就OK了、

判断
如果直接在地址栏直接是Showimg.aspx以及不是从本域名那么就返回一个盗链标志图片,
else
就返回真正的二进制图片流。
[/Quote]
先留下学费……
小_虎 2010-01-17
  • 打赏
  • 举报
回复
比如图片的src链接到一个一个Showimg.aspx页面,而这个页面通过传过来的ID

去把对应的图片转换为二进制输出,就OK了、

判断
如果直接在地址栏直接是Showimg.aspx以及不是从本域名那么就返回一个盗链标志图片,
else
就返回真正的二进制图片流。
Mirana_NightShade 2010-01-17
  • 打赏
  • 举报
回复
完全不懂
小_虎 2010-01-17
  • 打赏
  • 举报
回复
刚查了下东西,问题解决不了,
倒是让我想到我以后怎么去做防盗链了。。。
小_虎 2010-01-17
  • 打赏
  • 举报
回复
真不简单,这个东西。
xray2005 2010-01-17
  • 打赏
  • 举报
回复
sorry,不会
小_虎 2010-01-17
  • 打赏
  • 举报
回复
防盗链的东西。。。

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧