Сканировать узлы выхода для доступа к заблокированному сайту

Я использую STEM library in Python для доступа к Tor. Предположим, у меня есть URL-адрес, который заблокирован в моей стране, и я не знаю, из какой страны он будет разрешен, как я могу просканировать узлы выхода разных стран, чтобы найти правильный узел выхода для доступа?


person Neo    schedule 03.12.2015    source источник


Ответы (1)


Моя первая мысль — составить список стран, из которых вы хотели бы протестировать доступ к сайту, и указать Tor использовать ExitNodes из каждой страны и попытаться получить доступ к сайту через прокси-сервер Tor socks, чтобы получить список стран, которые работают.

Например (неполный код):

countries = [ "us", "fr", "de", "ca", "nl" ]
for co in countries:
    controller.set_conf("ExitNodes", "{" + co + "}")

    # make request using Tor socks proxy for site here
    # some check to determine if site is blocking country or not

То, как сайт блокирует доступ к стране, определяет, как ее проверять. Брандмауэр страны может заблокировать доступ к сайту, что может привести к тайм-аутам, или, если сайт блокирует доступ, возможно, они отобразят определенное сообщение или вернут ответ 403.

Короче говоря, проверьте HTML-код, который вы получаете при использовании каждой страны в качестве выхода, чтобы определить, заблокированы вы или нет.

person drew010    schedule 03.12.2015
comment
Это должно быть хорошим началом. Должны ли проверяться все выходные узлы страны? - person Neo; 04.12.2015
comment
Не совсем. Он построит цепь с одним выходным узлом из этой страны. Если вы отправляете сигнал NEWNYM снова и снова, вы можете получить разные узлы выхода из страны, но случайным образом (и, возможно, повторяющиеся). Если вы хотите проверить все, я бы предложил получить список всех реле из системы управления и фильтрации тех, у которых есть флаг выхода, создать список и протестировать их по отдельности. - person drew010; 04.12.2015