2010-01-06 15 views
10

मैं हॉटलिंक संरक्षित अन्य वेबसाइटों से छवियों को डाउनलोड करना चाहता हूं। मैं उन छवियों को अपनी वेबसाइट से लिंक नहीं करना चाहता हूं। मैं बस उन्हें डाउनलोड करना चाहता था।हॉटलिंक संरक्षित छवियों को कैसे डाउनलोड करें?

+0

जावा के साथ? बस सामान्य 'url.openConnection' नृत्य करें। जब तक आप 'रेफरर' हेडर में पास नहीं करते हैं, आपको छवि मिलनी चाहिए। – bobince

+1

(स्पष्टीकरण के लिए, अधिकांश हॉटलिंक सुरक्षा किसी भी 'रेफरर' के साथ कनेक्शन की अनुमति नहीं देती है, क्योंकि वे HTTP में वैकल्पिक हैं और वे मौजूद नहीं हो सकते हैं; वे केवल 'रेफरर' को किसी तृतीय-पक्ष साइट पर इंगित करते हैं। कुछ अवरोधक जिन्हें * रेफरर 'में पहली पार्टी साइट मौजूद होने की आवश्यकता होती है (जिस स्थिति में आपको इसे मैन्युअल रूप से जोड़ना होगा), लेकिन चूंकि इस साइट के लिए कई अवांछित दुष्प्रभाव हैं, यह बहुत दुर्लभ होना चाहिए ।) – bobince

उत्तर

11

usual hotlink-protection method चेक करता है कि "Referrer" HTTP Header मूल वेबसाइट के डोमेन नाम से मेल खाता है।

आप वेबसाइट में किसी पृष्ठ को इंगित करने के लिए मैन्युअल रूप से उस शीर्षलेख को सेट करके उस बाईपास को आसानी से बाईपास कर सकते हैं।

7

आपको रेफरर http शीर्षलेख पास करने की आवश्यकता है।

wget --referer=http://www.google.com/ http://www.google.com/intl/en_ALL/images/logo.gif 

यहाँ एक कच्चे रास्ते यह करने के लिए ताकि आप देख पर वास्तव में क्या हो रहा है:

telnet google.com 80 
GET /intl/en_ALL/images/logo.gif HTTP/1.1 
REFERER: http://www.google.com/ 
HOST: www.google.com 
3

आप द्वारा hotlink संरक्षित छवियों डाउनलोड कर सकते हैं इस प्रकार आप सबसे यूनिक्स सिस्टम पर wget साथ ऐसा कर सकते निम्नलिखित कोड का उपयोग कर:

URL url = new URL("http://www.somesite.com/picture.jpg"); 

URLConnection urlCon = url.openConnection(); 
urlConn.setRequestProperty("Referer", "http://www.somesite.com"); 
urlConn.connect(); 

InputStream urlStream = urlCon.getInputStream(); 

Image image = ImageIO.read(urlStream); 
0

क्रोम के लिए पोस्टमैन एक्सटेंशन आपको कस्टम http अनुरोध करने देता है। मुझे एक हॉटलिंक-अवरुद्ध छवि मिली, इसे यूआरएल कॉपी किया और इसे पाने के लिए पोस्टमैन में प्रवेश किया।

संबंधित मुद्दे