簡體   English   中英

如何獲取正在使用的TOR條目節點的IP地址

[英]How do I get the IP address of the TOR entry node in use

我一直在尋找映射tor的方法,並查看如何分配地址,但我需要能夠知道我在任何給定時間使用的入口節點的IP地址。

不確定從哪里開始,因為我不僅僅是一個熟練的程序員(python),並且傾向於根據需要學習點點滴滴。 任何指向要使用的命令的指針都會受到贊賞。

我確實認為在中間節點上運行wireshark可能是最簡單的方法,但需要一台額外的機器,我沒有在那一刻敲門。

實際上,這與我們的FAQ條目非常相似。 要獲得當前電路的IP地址,您可以使用詞干來執行以下操作...

from stem import CircStatus
from stem.control import Controller

with Controller.from_port() as controller:
  controller.authenticate()

  for circ in controller.get_circuits():
    if circ.status != CircStatus.BUILT:
      continue  # skip circuits that aren't yet usable

    entry_fingerprint = circ.path[0][0]
    entry_descriptor = controller.get_network_status(entry_fingerprint, None)

    if entry_descriptor:
      print "Circuit %s starts with %s" % (circ.id, entry_descriptor.address)
    else:
      print "Unable to determine the address belonging to circuit %s" % circ.id

這提供了像...的輸出

atagar@morrigan:~/Desktop/stem$ python example.py 
Circiut 15 starts with 209.222.8.196
Circiut 7 starts with 209.222.8.196

希望這可以幫助! -Damian

txtorcon是用python編寫的tor庫,它將為您提供所需的所有信息。 有關指導,請參閱/ examples-files。

如果認為有必要,請在github上提交功能請求

您也可以嘗試使用基於txtorcon的carml( http://carml.readthedocs.org/en/latest/ )。 carml circ --list --verbose ”將為您提供所需的信息。

為了完整性,這里是如何使用txtorcon執行上述操作:

#!/usr/bin/env/python                                                                                                                              

from twisted.internet.task import react
from twisted.internet.defer import inlineCallbacks
import txtorcon

@inlineCallbacks
def main(reactor):
    state = yield txtorcon.build_local_tor_connection(reactor)
    for circuit in state.circuits.values():
        first_relay = circuit.path[0]
        print "Circuit {} first hop: {}".format(circuit.id, first_relay.ip)

if __name__ == '__main__':
    react(main)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM