2012-03-19 24 views
12

मैं टोर इंस्टेंस चलाने की स्थिति की निगरानी करना चाहता हूं।मैं नियंत्रण बंदरगाह पर टोर निकास नोड आईपी पता कैसे प्राप्त करूं?

मैं पहले से ही नियंत्रण बंदरगाहों के लिए एक टीसीपी कनेक्शन के माध्यम से जानकारी प्राप्त करने में सक्षम हूं। ईजी। "GETINFO स्ट्रीम-स्टेटस" डेटा देता है, लेकिन मैं वर्तमान में चुने गए निकास नोड के आईपी पते को निर्धारित करने में सक्षम नहीं हूं।

बस whatismyip.org जैसे कुछ अनुरोध करना संभव होगा, लेकिन यह बहुत धीमा है और अच्छी तरह से स्केल नहीं करता है।

तो टॉर कनेक्शन के निकास नोड आईपी पते को प्राप्त करने का सबसे अच्छा तरीका क्या है?

+0

क्या आपको कोई समाधान मिला है? – Fluffy

उत्तर

-1

टोर कंट्रोल प्रोटोकॉल spec के अनुसार, सही वाक्यविन्यास "GETINFO पता" है, जिसे the best guess at our external IP address प्रस्तुत करना चाहिए। अगर हमारे पास कोई अनुमान नहीं है, तो 551 त्रुटि लौटाएं। (0.1.2.2-अल्फा में जोड़ा गया) "।

+4

'GETINFO पता' अपना स्वयं का आईपी पता प्रदान करता है (यानी, अन्य लोगों को पता होगा कि क्या आप रिले होने का विकल्प चुनते हैं)। पोस्टर क्या पूछ रहा है वह अपने वर्तमान सर्किट के बाहर निकलने वाले रिले पते है। – Damian

+0

'getinfo सर्किट-स्टेटस' 'मौजूदा सर्किट निर्मित और तैयार हैं। इसमें OR नाम (राउटर/हॉप का नाम) और आईडी शामिल होगा। इसके साथ आप 'getinfo ns/id/' 'या' getinfo ns/name/ '' के साथ उठ सकते हैं, आपको यह पता चल सकता है कि आईपी – gesell

8

यह एक बड़ा सवाल है! यहाँ stem का उपयोग कर इसे करने के लिए एक छोटे से स्क्रिप्ट है ...

from stem import CircStatus 
from stem.control import Controller 

with Controller.from_port(port = 9051) as controller: 
    controller.authenticate() 

    for circ in controller.get_circuits(): 
    if circ.status != CircStatus.BUILT: 
     continue 

    exit_fp, exit_nickname = circ.path[-1] 

    exit_desc = controller.get_network_status(exit_fp, None) 
    exit_address = exit_desc.address if exit_desc else 'unknown' 

    print "Exit relay" 
    print " fingerprint: %s" % exit_fp 
    print " nickname: %s" % exit_nickname 
    print " address: %s" % exit_address 
    print 

प्रश्न के लिए धन्यवाद। मैं इस जोड़ दिया है our FAQ करने के लिए।

+1

मुझे कैसे पता चलेगा कि इनमें से कौन सा टोर उपयोग करेगा? – Tyilo

+0

हां, हम कैसे जानते हैं कि इनमें से किस का उपयोग टोर द्वारा किया जा रहा है? – rdsoze

+0

यह पायथन/स्टेम उपयोग टोर कंट्रोल प्रोटोकॉल में कैसे अनुवाद करता है? मुझे लगता है कि यह 'GETINFO सर्किट-स्टेटस' है। –

0

आप tor control api उपयोग कर सकते हैं। लेकिन मैं बिंदु दिखाई नहीं देता।

आप बाहर निकलें नोड id~name पता है, तुम आईपी पते है कि उस पर सुन रहा है पता है। आप नहीं जानते कि क्या नेटवर्क interfac ई और क्या आईपी पता यह आपकी क्वेरी को संसाधित करने के लिए उपयोग करेगा।

मैंने अभी जांच की है कि लगभग 5% टोर निकास नोड्स अप्रकाशित आईपीवी 4 पते का उपयोग करता है।

दुनिया आईपीवी 6 पर जा रही है। ये आईपी पते सस्ते हैं। प्रत्येक निकास नोड में आईपीवी 6 अप्रकाशित पते का एक बैग हो सकता है।