2012-11-12 17 views
10

अगर यह कोई नोबिश संदेह है तो अग्रिम में मेरी माफी माँगती है: मैं कुछ वेब पेज लाने के लिए अपने रूबी कोड में प्रॉक्सी का उपयोग करना चाहता हूं। और मैं इसके बारे में चुपके बनना चाहता हूँ! तो मैं टोर का उपयोग कर रहा हूँ।रूबी, टोर और नेट :: HTTP :: प्रॉक्सी

मेरे पास टोर चल रहा है, और मैं सामान्य रूप से नेट :: HTTP.get (uri) का उपयोग करने में सक्षम हूं। लेकिन मैं यह समझ नहीं सकता कि यूरी लाने के लिए नेट :: HTTP :: प्रॉक्सी का उपयोग कैसे करें। मैं यह भी नहीं समझ सकता कि टोर का उपयोग करने से मेरी fetches को अज्ञात बनाने में मदद मिलेगी।

किसी भी मदद की बहुत सराहना की जाती है। कृपया link to the ruby-doc page for Net::HTTP::Proxy न जोड़ें। तो मुझे लगता है कि समझा था, मैं यहाँ यह करने के लिए SOCKSify उपयोग कर रहा है यह पूछ हैं नहीं किया जा :-)


एक और आसान तरीका है, लेकिन इस मामले में, मैं निम्न त्रुटि प्राप्त:

/usr/lib/ruby/gems/1.9.2-p290/gems/socksify-1.5.0/lib/socksify.rb:189:in 'socks_authenticate': SOCKS version not supported (SOCKSError)

मैंने पहले कभी भी नेटवर्क प्रोग्रामिंग नहीं किया है। इसके बारे में कोई भी मार्गदर्शन भी बहुत उपयोगी होगा। धन्यवाद :-)

+0

[नेट :: HTTP :: प्रॉक्सी] (http://apidock.com/ruby/Net/HTTP/Proxy/class) के लिंक के बारे में कैसे? – pguardiario

+0

इसे इंगित करने के लिए धन्यवाद। लिंक प्रश्न में जोड़ा गया। –

+0

निश्चित रूप से दिलचस्प उपक्रम। मैं संभावित समाधान की उम्मीद कर रहा हूं। –

उत्तर

13

आप HTTP प्रॉक्सी क्लास का उपयोग कर रहे हैं, इसलिए आपको HTTP प्रॉक्सी का आईपी प्रदान करना होगा। टोर ब्राउजर में HTTP प्रॉक्सी बंडल नहीं है।

तो आप या तो कुछ प्रॉक्सी सॉफ़्टवेयर इंस्टॉल कर सकते हैं उदा।

में config.txt forward-socks4a / 127.0.0.1:9050 .

तो Privoxy के डिफ़ॉल्ट सुनने-पता अपनी स्क्रिप्ट में उपयोग करें::

proxy = Net::HTTP::Proxy('127.0.0.1',8118) 

या उपयोग SOCKSify Privoxy और यह कॉन्फ़िगर टो के सॉक्स उपयोग करने के लिए । अनुसार docs रहे हैं:

$ socksify_ruby localhost 9050 script.rb 

जो एक रूबी स्क्रिप्ट के सभी TCP कनेक्शन पुनर्निर्देशित:

require 'socksify/http' 
uri = URI.parse('http://rubyforge.org/') 
Net::HTTP.SOCKSProxy('127.0.0.1', 9050).start(uri.host, uri.port) do |http| 
    http.get(uri.path) 
end 

अतिरिक्त सॉफ्टवेयर की कोई आवश्यकता ..

तीसरा समाधान के रूप में इस SOCKSify उपयोग करने के लिए है , जिसका अर्थ है कि आपको किसी भी प्रॉक्सी कोड का उपयोग करने की आवश्यकता नहीं है।

स्पष्टीकरण के लिए आपको समझना होगा कि 127.0.0.1:9050 टोर का सॉक्स पता है और 127.0.0.1:8118 Privoxy का पता है।

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