2012-03-19 41 views
12

Tôi muốn theo dõi trạng thái chạy các cá thể Tor.Làm thế nào để có được địa chỉ IP nút thoát Tor trên cổng điều khiển?

Tôi đã có thể nhận thông tin qua kết nối TCP tới các cổng điều khiển. Ví dụ: "Trạng thái luồng GETINFO" trả về dữ liệu, nhưng tôi không thể xác định địa chỉ IP của nút thoát hiện được chọn.

Có thể chỉ cần yêu cầu một cái gì đó như whatismyip.org, nhưng điều đó quá chậm và không có quy mô tốt.

Vậy cách tốt nhất để lấy địa chỉ IP nút thoát của kết nối Tor là gì?

+0

Bạn đã tìm thấy giải pháp chưa? – Fluffy

Trả lời

-1

Theo giao thức điều khiển Tor spec, cú pháp chính xác là "địa chỉ GETINFO", sẽ hiển thị the best guess at our external IP address. Nếu chúng tôi không đoán, hãy trả lại lỗi 551. (Added trong 0.1.2.2-alpha)".

+4

Địa chỉ 'GETINFO' cung cấp địa chỉ IP của riêng bạn (ví dụ: địa chỉ người khác sẽ thấy nếu bạn chọn chuyển tiếp). Những gì các poster được hỏi về là địa chỉ chuyển tiếp xuất cảnh của các mạch hiện tại của mình. – Damian

+0

Các mạch hiện tại 'getinfo circuit-status'' được xây dựng và sẵn sàng. Điều này sẽ chứa tên OR (tên của router/hop) và ID. Với điều này, bạn có thể bắt đầu với '' getinfo ns/id/ '' hoặc '' getinfo ns/name/ '' có thể cho phép bạn xác định ip – gesell

8

Đây là một câu hỏi lớn! Dưới đây là một kịch bản ngắn để thực hiện nó bằng cách sử 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 

Cảm ơn cho câu hỏi. Tôi đã thêm này để our FAQ.

+1

Làm cách nào để biết Tor nào sẽ sử dụng? – Tyilo

+0

Có, làm thế nào để chúng ta biết cái nào trong số này đang được sử dụng bởi Tor? – rdsoze

+0

Cách sử dụng python/stem này được chuyển thành giao thức điều khiển Tor như thế nào? Tôi đoán đó là 'trạng thái mạch GETINFO'. –

0

bạn có thể sử dụng tor control api. Nhưng tôi không nhìn thấy điểm.

bạn biết nút exit id~name, bạn biết địa chỉ iP mà nó đang lắng nghe trên. bạn không biết những gì mạng interfac e và địa chỉ IP nào sẽ sử dụng để xử lý truy vấn của bạn.

Tôi vừa kiểm tra khoảng 5% nút thoát tor sử dụng địa chỉ ipv4 chưa được xuất bản.

Thế giới đang chuyển sang ipv6. Những địa chỉ IP này rẻ. Mỗi nút thoát có thể có một túi địa chỉ ipv6 unpiblished.

Các vấn đề liên quan