Как получить *текущий* IP-адрес выходного узла Tor через контрольный порт?

Как получить внешний IP-адрес текущего выходного узла Tor (того, который используется) без использования внешних сервисов/веб-сайтов (через curl или иным образом), а только через функциональные возможности порта управления Tor (используя bash или python3).

ПРИМЕЧАНИЕ. Я искал ответ на этот вопрос и нашел этот (в котором перечислены все узлы выхода) и этот (который не дает IP-адрес текущего выходного узла, а какого-то другого узла). Другие ответы предлагают использовать внешние сервисы через curl или иным образом, а это не то, что я ищу.

Я использую GNU/Linux.


person stackerist    schedule 26.01.2020    source источник
comment
Некоторые предложения в stackoverflow.com/a/50863271/892493   -  person drew010    schedule 27.01.2020


Ответы (1)


cid - это идентификатор используемой в данный момент цепи или любой другой идентификатор цепи, который вы хотите.
1 - с помощью cid мы получаем событие цепи с состоянием цепи, мы берем отпечаток выходного узла (последний элемент в свойстве пути).
2 - проверка состояния сети и получение свойства адреса.

er = controller.get_circuit(cid).path[-1][0]
ip = controller.get_network_status(er).address

или я еще не пробовал, есть

get_network_statuses - provides all presently available router status entries

Надеюсь, поможет. https://stem.torproject.org/api/control.html

person kaa    schedule 08.04.2020