Tor Stem - 前往俄罗斯,有爱情联系问题

2023-12-10

我正在尝试获取带着爱去俄罗斯教程来自 Stem 项目的工作。

from io import StringIO
import socket
import urllib3
import time

import socks  # SocksiPy module
import stem.process

from stem.util import term

SOCKS_PORT = 9150

# Set socks proxy and wrap the urllib module

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', SOCKS_PORT)
socket.socket = socks.socksocket

# Perform DNS resolution through the socket

def getaddrinfo(*args):
  return [(socket.AF_INET, socket.SOCK_STREAM, 6, '', (args[0], args[1]))]

socket.getaddrinfo = getaddrinfo


def query(url):
  """
  Uses urllib to fetch a site using SocksiPy for Tor over the SOCKS_PORT.
  """

  try:
    return urllib3.urlopen(url).read()
  except:
    return "Unable to reach %s" % url


# Start an instance of Tor configured to only exit through Russia. This prints
# Tor's bootstrap information as it starts. Note that this likely will not
# work if you have another Tor instance running.

def print_bootstrap_lines(line):
  if "Bootstrapped " in line:
    print (term.format(line, term.Color.BLUE))


print (term.format("Starting Tor:\n", term.Attr.BOLD))

tor_process = stem.process.launch_tor_with_config(
  tor_cmd = "C:\Tor Browser\Browser\TorBrowser\Tor\\tor.exe", config = {
    'SocksPort': str(SOCKS_PORT),
#    'ExitNodes': '{ru}',
  }, 
  init_msg_handler = print_bootstrap_lines,
)

print (term.format("\nChecking our endpoint:\n", term.Attr.BOLD))
print (term.format(query("https://www.atagar.com/echo.php"), term.Color.BLUE))

tor_process.kill()  # stops tor

我对原始版本进行了一些调整,使其可以与 python 3.4 一起使用,并且我还使用 pysocks 而不是 soksipy。我从 urllib 而不是 urllib3 开始,我遇到了同样的问题。目前我得到:

C:\Python>python program1.py
←[1mStarting Tor:
←[0m
←[34mFeb 28 21:59:45.000 [notice] Bootstrapped 0%: Starting←[0m
←[34mFeb 28 21:59:45.000 [notice] Bootstrapped 5%: Connecting to directory server←[0m
←[34mFeb 28 21:59:45.000 [notice] Bootstrapped 80%: Connecting to the Tor network←[0m
←[34mFeb 28 21:59:45.000 [notice] Bootstrapped 85%: Finishing handshake with first hop←[0m
←[34mFeb 28 21:59:46.000 [notice] Bootstrapped 90%: Establishing a Tor circuit←[0m
←[34mFeb 28 21:59:47.000 [notice] Bootstrapped 100%: Done←[0m
←[1m
Checking our endpoint:
←[0m
←[34mUnable to reach https://www.atagar.com/echo.php←[0m

我在 Tor 之外也做过类似的代码工作。我可以将我的 Tor 浏览器连接到该网站,并且可以毫无问题地浏览它。我尝试更改端口号,但这是在 Tor 代理设置中设置的端口号。我的一个想法是,这可能是一个时间问题。是否有可能代码等待站点响应的时间不够长?

任何帮助完成这项工作的帮助将不胜感激。


这是一个工作版本茎教程使用pysocks和它的sockshandler模块以避免对套接字模块进行猴子修补:

#!/usr/bin/env python
"""
https://stem.torproject.org/tutorials/to_russia_with_love.html

Usage:
  russian-tor-exit-node [<tor>] [--color] [--geoipfile=</path/to/file>]
  russian-tor-exit-node -h | --help
  russion-tor-exit-node --version

Dependencies:

- tor (packaged and standalone executables work)
- pip install stem
- pip install PySocks
- pip install docopt
  : parse options
- pip install colorama
  : cross-platform support for ANSI colors
- [optional] sudo apt-get tor-geoipdb
  : if tor is bundled without geoip files; --geoipfile=/usr/share/tor/geoip
"""
import sys
from contextlib import closing

import colorama  # $ pip install colorama
import docopt  # $ pip install docopt
import socks  # $ pip install PySocks
import stem.process  # $ pip install stem
from sockshandler import SocksiPyHandler  # see pysocks repository
from stem.util import term

try:
    import urllib2
except ImportError: # Python 3
    import urllib.request as urllib2


args = docopt.docopt(__doc__, version='0.2')
colorama.init(strip=not (sys.stdout.isatty() or args['--color']))

tor_cmd = args['<tor>'] or 'tor'
socks_port = 7000
config = dict(SocksPort=str(socks_port), ExitNodes='{ru}')
if args['--geoipfile']:
    config.update(GeoIPFile=args['--geoipfile'], GeoIPv6File=args['--geoipfile']+'6')


def query(url, opener=urllib2.build_opener(
        SocksiPyHandler(socks.PROXY_TYPE_SOCKS5, "localhost", socks_port))):
  try:
      with closing(opener.open(url)) as r:
          return r.read().decode('ascii')
  except EnvironmentError as e:
    return "Unable to reach %s: %s" % (url, e)

# Start an instance of Tor configured to only exit through Russia. This prints
# Tor's bootstrap information as it starts. Note that this likely will not
# work if you have another Tor instance running.
def print_bootstrap_lines(line):
  if "Bootstrapped " in line:
    print(term.format(line, term.Color.BLUE))
  else:
    print(line)

print(term.format("Starting Tor:\n", term.Attr.BOLD))
tor_process = stem.process.launch_tor_with_config(
    tor_cmd=tor_cmd,
    config=config,
    init_msg_handler=print_bootstrap_lines,
)
try:
    print(term.format("\nChecking our endpoint:\n", term.Attr.BOLD))
    print(term.format(query("https://icanhazip.com"), term.Color.BLUE))
finally:
    if tor_process.poll() is None: # still running
        tor_process.terminate()  # stops tor
        tor_process.wait()

它可以在我的 Ubuntu 机器上的 Python 2 和 3 上运行。

strace显示数据和 DNS 请求是通过 Tor 代理发出的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tor Stem - 前往俄罗斯,有爱情联系问题 的相关文章

  • PyList_SetItem 与 PyList_SETITEM

    据我所知 PyList SetItem 和 PyList SETITEM 之间的区别在于 PyList SetItem 会降低它覆盖的列表项的引用计数 而 PyList SETITEM 不会 我有什么理由不应该一直使用 PyList Set
  • 为什么我不能使用“exclude”从 python 轮子中排除“tests”目录?

    考虑以下包结构 与以下setup py内容 from setuptools import setup find packages setup name dfl client packages find packages exclude te
  • Python Nose 导入错误

    我似乎无法理解鼻子测试框架 https nose readthedocs org en latest 识别文件结构中测试脚本下方的模块 我已经设置了演示该问题的最简单的示例 下面我会解释一下 这是包文件结构 init py foo py t
  • Spark MLlib - 训练隐式警告

    我在使用时不断看到这些警告trainImplicit WARN TaskSetManager Stage 246 contains a task of very large size 208 KB The maximum recommend
  • KFold 和 ShuffleSplit CV 有什么区别?

    看起来 KFold 每次迭代对象时都会生成相同的值 而 Shuffle Split 每次都会生成不同的索引 它是否正确 如果是这样 其中一个相对于另一个有什么用处 cv cross validation KFold 10 n folds 2
  • Python:记录垃圾收集器

    我有一个 python 应用程序 有一些性能问题 我想将垃圾收集器的事件 特别是何时调用 添加到我的日志中 是否可以 thanks http docs python org library gc html gc set debug http
  • 为什么在 Windows 中使用 GetConsoleScreenBufferInfoEx 时控制台窗口会缩小?

    我正在尝试使用 GetConsoleScreenBufferInfoEx 和 SetConsoleScreenBufferInfoEx 设置 Windows 命令行控制台的背景和前景色 我正在 Python 中使用 wintypes 进行此
  • 如何找到列表S的所有分区为k个子集(可以为空)?

    我有一个唯一元素列表 比方说 1 2 我想将其拆分为 k 2 个子列表 现在我想要所有可能的子列表 1 2 1 2 2 1 1 2 我想分成 1 1 2 我怎样才能用 Python 3 做到这一点 更新 我的目标是获取 N 个唯一数字列表的
  • 为什么我的scoped_session 引发 AttributeError: 'Session' object has no attribute 'remove'

    我正在尝试建立一个系统 将数据库操作优雅地推迟到单独的线程 以避免在 Twisted 回调期间发生阻塞 到目前为止 这是我的方法 from contextlib import contextmanager from sqlalchemy i
  • Pyspark 数据框逐行空列列表

    我有一个 Spark 数据框 我想创建一个新列 其中包含每行中具有 null 的列名称 例如 原始数据框是 col 1 col 2 col 3 62 45 null 62 49 56 45 null null null null null
  • 如何使用 Pandas 将巨大的 CSV 转换为 SQLite?

    我有一个巨大的表 大约 60 GB 采用存档的 CSV 文件形式 我想将其转换为 SQLite 文件 我现在所做的事情如下 import pandas import sqlite3 cnx sqlite3 connect db sqlite
  • 如何对这个 Flask 应用程序进行单元测试?

    我有一个 Flask 应用程序 它使用 Flask Restless 来提供 API 我刚刚写了一些身份验证来检查 如果消费者主机被识别 该请求包含一个哈希值 通过加密 POST 的请求内容和 GET 的 URL 以及秘密 API 密钥来计
  • pip 安装软件包两次

    不幸的是我无法重现它 但我们已经见过几次了 pip 将一个软件包安装两次 如果卸载第一个 第二个就会可见并且也可以被卸载 我的问题 如果一个包安装了两次 如何用 python 检查 背景 我想编写一个测试来检查这一点 devOp Updat
  • Spark中的count和collect函数抛出IllegalArgumentException

    当我使用时抛出此异常时 我尝试在本地 Spark 上加载一个小数据集count 在 PySpark 中 take 似乎有效 我试图搜索这个问题 但没有找到原因 看来RDD的分区有问题 有任何想法吗 先感谢您 sc stop sc Spark
  • smooth_idf 是多余的吗?

    The scikit learn 文档 http scikit learn org stable modules generated sklearn feature extraction text TfidfTransformer html
  • numpy.cov() 返回意外的输出

    我有一个 X 数据集 有 9 个特征和 683 行 683x9 我想获取这个 X 数据集和另一个与 X 具有相同形状的数据集的协方差矩阵 我使用np cov originalData generatedData rowvar False 代
  • 如何在C++中列出Python模块的所有函数名称?

    我有一个 C 程序 我想导入一个 Python 模块并列出该模块中的所有函数名称 我该怎么做 我使用以下代码从模块中获取字典 PyDictObject pDict PyDictObject PyModule GetDict pModule
  • 大型数据集上的 Sklearn-GMM

    我有一个很大的数据集 我无法将整个数据放入内存中 我想在这个数据集上拟合 GMM 我可以用吗GMM fit sklearn mixture GMM 重复小批量数据 没有理由重复贴合 只需随机采样您认为机器可以在合理时间内计算的尽可能多的数据
  • Jupyter Notebook:没有名为 pandas 的模块

    我搜索了其他问题 但没有找到任何有帮助的内容 大多数只是建议您使用 conda 或 pip 安装 pandas 在我的 jupyter 笔记本中 我试图导入 pandas import pandas as pd 但我收到以下错误 Modul
  • 如何设置 matplotlib 表中列的背景颜色

    我在一个目录中有多个 txt 文件 例如 d memdump 0 txt 1 txt 10 txt 示例文本文件如下 Applications Memory Usage kB Uptime 7857410 Realtime 7857410

随机推荐

  • 如何在 VB.NET 中填充组合框

    我有一个代码来填充我的组合框 但每次我关闭表单时 列表都会加倍 如果我关闭表单并再次打开它后 我的英语 数学 科学数据库中有一个列表 则列表现在显示为英语 数学 科学 英语 数学 科学 这是代码 Call OpenDB cmd Comman
  • 雪花支持ssl吗?

    您好 我希望能够使用 ssl 从 jdbc 驱动程序连接到雪花 我对其他数据库做了很多次 只需在连接 url 中添加 ssl true 有时是其他属性 不幸的是我在雪花文档中没有找到这个选项 我发现雪花支持像 ssl 这样的东西 他们称之为
  • 从模块导出函数时,延迟绑定脚本块不起作用

    我有以下功能 function PipeScript param Parameter ValueFromPipeline Object InputObject Object ScriptBlock process value Invoke
  • Rails 3 中的猴子修补

    Rails 3 中 Monkey Patch 的首选方式是什么 我只想向 String 类添加一个方法 我更关注将文件放置在哪里 初始化程序目录是收集所有这些小碎片的好地方 由于我倾向于对核心扩展有点过度 所以我喜欢在那里创建一个名为 扩展
  • 使用注册表检测安装的MS Office是32位还是64位

    我想根据excel版本 32位或64位 安装vsto addin 我计划捆绑 32 位和 64 位 msis 并通过确定 Excel 版本来安装一个 我可以找到这个链接来使用注册表检测2010 Office是32位还是64位 通过注册表检测
  • pytest 2.3 在类中添加拆卸

    我正在研究新版本的 pytest 2 3 并对新功能感到非常兴奋 您可以在其中使用 可以通过注册一个或多个来精确控制拆卸 一旦执行了一些操作 拆卸功能 需要撤消 消除了单独 拆卸 的需要 装饰器 from here 作为函数使用就很清楚了
  • 如何打印树形结构?

    我正在努力提高我们应用程序的性能 我以调用树的形式获得了性能信息 具有以下节点类 public class Node public string Name method name public decimal Time time spent
  • Shiny:将 styleColorBar 与来自两个数据帧的数据一起使用

    我正在尝试在 Shiny 中显示一个表格 其中数字将从一个 data frame 或 data table 显示 但条形的大小将从另一个 data frame 获取 例如 将显示绝对值 但来自另一个表 相同排列 的 log p values
  • 如何在android中以编程方式取消闹钟? [复制]

    这个问题在这里已经有答案了 我使用这段代码创建了一个警报并且它有效 请建议如何取消该警报 Intent alarmIntent new Intent AlarmClock ACTION SET ALARM alarmIntent setFl
  • 使用用例图将数据库作为参与者,以及整个图的正确性

    如果我需要将数据库识别为参与者 我会陷入困境并感到困惑 因为数据库是在场景中给出的 我首先尝试将其作为演员 因为根据场景 所需的数据来自数据库 我还尝试为整个场景创建一个用例 但不确定是否正确 这是场景的链接 https justpaste
  • 将两个二进制文件合并为第三个二进制文件

    我正在尝试将两个二进制文件合并到Python 中的第三个二进制文件 我的代码 input1 input2 input1 open input1 bin read input2 open input2 bin read input1 inpu
  • Directx 11 前缓冲器

    我希望这是对一个我找不到答案的简单问题的简单答案 如何访问 Directx 11 DXGI 中的前端缓冲区 我发现在 Directx 9 中可以使用 GetFrontBufferData 在 Directx 11 中可以使用 GetBuff
  • 如何优化目录列表? (enumeratorAtPath和递归调用contentsOfDirectoryAtPath)

    我编写了一个方法 getDirTree1 使用推荐的类 NSDirectoryEnumerator 和方法 nextObject 列出从根目录开始的所有目录 但是 当它运行时 会使用大量内存 主要是私有类 NSPathStore2 这是不可
  • VHDL——连接开关和LED

    我有 Xilinx Spartan6 和下一个 VHDL 代码 library ieee use ieee std logic 1164 all use ieee numeric std all entity Switches Leds i
  • android,UTF8 - 如何确保 UTF8 用于共享首选项

    如何确保共享首选项菜单使用 UTF8 我有一个 android 首选项菜单 允许用户设置他们的名字等 我需要知道如何将共享首选项中存储的数据转换为 UTF8 格式 首选项菜单使用 utf8 编码以 xml 格式布置在 res xml 文件夹
  • 具有相同方法名称但不同限定符的 Spring bean 无法加载

    我有两个 Spring Configuration 类定义如下 Configuration public class ClsA Bean Qualifier ClasA public String getSomething return s
  • 如何在烧瓶响应中返回图像?

    举个例子 这个网址 http example com get image type 1 应该返回一个响应image gifMIME 类型 我有两个静态 gif images 如果类型是 1 它应该返回ok gif 否则返回error gif
  • ASP.NET MVC6 中的实体框架7对同一个表的多个外键

    您好 我有同样的问题 这里有一篇旧文章 那里提供的解决方案在带有 EF7 的 MVC 6 中对我不起作用很简单 public class Match Key public int MatchId get set public DateTim
  • Pytorch - 运行时错误:尝试再次向后浏览图表,但缓冲区已被释放

    我一直遇到这个错误 运行时错误 尝试再次向后浏览图形 但缓冲区已被释放 第一次向后调用时指定retain graph True 我在 Pytorch 论坛中搜索过 但仍然找不到我在自定义损失函数中做错了什么 我的模型是 nn GRU 这是我
  • Tor Stem - 前往俄罗斯,有爱情联系问题

    我正在尝试获取带着爱去俄罗斯教程来自 Stem 项目的工作 from io import StringIO import socket import urllib3 import time import socks SocksiPy mod