2013-06-09 1 views
6

मैं stem.process.launch_tor_with_config के साथ बनाए गए टोर नोड को नियंत्रित करने के लिए stem का उपयोग कर रहा हूं। मैंने stem.control.Controller भी बनाया है जो उपर्युक्त प्रक्रिया 'नियंत्रण पोर्ट पर चल रहा है।मैं अपनी टोर प्रक्रिया 'स्टेम में एंडपॉइंट कैसे बदल सकता हूं?

मैं निकास नोड कैसे बदल सकता हूं? मैंने stem.controller.Controller.new_circuit पर देखा, लेकिन यह इंटरमीडिएट नोड्स को बदलता है, जो एंडपॉइंट को संरक्षित करता है।

क्या कोई जानता है कि यह कैसे किया जा सकता है?

धन्यवाद!

संपादित करें:

तो मुझे लगता है कि मैं कुछ मौलिक गलतफहमी हो सकती है, लेकिन मैं इसे चारों ओर मेरे सिर लपेटो नहीं कर पा रहे। मैंने Controller.get_circuits() पर कॉल करने का प्रयास किया और CircuitEvent ऑब्जेक्ट्स की एक सूची मिली। क्या इसका मतलब यह है कि एक ही प्रक्रिया एकाधिक सर्किट को संभाल सकती है? यदि हां, तो मैं उपयोग के लिए एक का चयन कैसे करूं?

ध्यान दें कि मैं HTTP अनुरोधों को Privoxy के माध्यम से निर्देशित कर रहा हूं, जो बदले में इसे टोर प्रोसेस 'सॉक्स पोर्ट पर अग्रेषित कर रहा है।

संपादित करें 2:

मैं कुछ है कि काम करता है पाया है, लेकिन मैं नहीं जानता कि कैसे यह काम करता है, जो मुझे चिंता।

  1. के बारे में बताएं क्यों मेरे दृष्टिकोण से काम करता है
  2. दिखाएँ एक बेहतर दृष्टिकोण हो सकता है और है कि कैसे काम करता है

यहाँ मैं क्या किया है समझाने: मैं खुशी किसी को एक जवाब जो या तो कर सकते हैं अवार्ड होगी:

for circuit in controller.get_circuits(): 
    controller.close_circuit(circuit.id) 

वहां है। बाहरी आईपी बदल गया, इसलिए मुझे पता है कि मैंने कुछ किया है लेकिन नरक अगर मुझे पता है कि वास्तव में क्या है।

उत्तर

6

आप कुछ विकल्प एक विशिष्ट बाहर निकलने के उपयोग करने के लिए ...

  • सेट ExitNodes अपने torrc में विशेषता है। इस में एक उदाहरण प्रस्तुत किया है ...

https://stem.torproject.org/tutorials/to_russia_with_love.html

  • कॉल extend_circuit() वांछित अंत बिंदु करने के लिए अपने वर्तमान सर्किटों में से एक पर ...

https://stem.torproject.org/api/control.html#stem.control.Controller.extend_circuit

हैं सवाल आप पूछने की कोशिश कर रहे हैं वास्तव में 'मैं एक नया आईपी पता कैसे प्राप्त करूं' तो यह एक सवाल है जिसे हम उत्तर देने के लिए अधिक अनिच्छुक हैं। आंशिक रूप से क्योंकि यह मुख्य रूप से प्रतिबंध चोरी या एसईओ के लिए है, और आंशिक रूप से क्योंकि बार-बार सर्किट निर्माण टोर नेटवर्क पर एक उच्च भार डालता है।

जब आप close_circuit() को कॉल करते हैं तो आपका आईपी क्यों बदलता है, ऐसा इसलिए है क्योंकि टोर को निम्नलिखित अनुरोध के लिए आपकी ओर से एक नया सर्किट फिर से बनाने की आवश्यकता है। इस बात की कोई गारंटी नहीं है कि आईपी नया होगा, और ऐसा करने से तीन ताजा होप्स के माध्यम से आपके कनेक्शन दूरबीन के लिए यातायात का एक बड़ा हिस्सा शामिल है।

मैं StackOverflow पर अक्सर नहीं कर रहा हूँ ताकि आप टो के खिलाफ पटकथा के बारे में अधिक प्रश्न हैं तो फिर मैं टो-dev @ ईमेल सूची सुझाव है ...

https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev/

चीयर्स! -डैमियन (स्टेम लेखक)

+0

सबसे पहले, आपके उत्तर के लिए धन्यवाद। सबसे दूसरा, कृपया मेरा आश्वासन दें कि मैं टीओआर नेटवर्क का दुरुपयोग नहीं कर रहा हूं। मेरा गोआ * वास्तव में, एंडपॉइंट आईपी पर कुछ नियंत्रण रखने के लिए है, लेकिन मैं इसे (जो मुझे लगता है) के लिए कर रहा है एक अच्छा कारण है। मैं टीओआर नेटवर्क के कुछ गुणों की जांच के लिए विभिन्न आईपी के साथ टीओआर प्रक्रियाओं का एक पूल चलाने की कोशिश कर रहा हूं। दूसरे शब्दों में, मैं हैकिंग (रचनात्मक अर्थ में) हूं। मुझे उम्मीद है कि यह ठीक है! इसे ध्यान में रखते हुए, क्या एंडपॉइंट आईपी में गारंटीकृत परिवर्तन करने का कोई तरीका है? – blz

+0

सुनने के लिए खुशी हुई! यदि आप बस अलग-अलग निकास रिले के पूल की तलाश में हैं तो सबसे आसान विकल्प घाव शायद उस सेट को ढूंढना है जिसे आप एटलस (http://atlas.torproject.org/) में उपयोग करना चाहते हैं, फिर create_circuit() को कॉल करने के लिए कॉल करें उनमें से प्रत्येक के माध्यम से एक सर्किट। अप्रिय बिट यह है कि आपको 'कौन सी धारा कौन सी आईपी प्राप्त होती है' निर्धारित करने के लिए आपको सर्किट में स्ट्रीम को मैन्युअल रूप से संलग्न करने की आवश्यकता होगी। इसके लिए attach_stream() देखें (https://stem.torproject.org/api/control.html#stem.control.Controller.attach_stream)। – Damian

+0

बढ़िया! मैं उसमें देख लूंगा। आपकी सहायता के लिए एक बार फिर से धन्यवाद! – blz

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