我想在Python中编写一个简单的脚本,它将连接到TOR网络并选择我指定的某个国家/地区的退出节点。例如,我希望将所有传出的网络流量路由到 - 西班牙(通过TOR网络)。有没有办法实现这个目标?
谢谢, 汤姆。
答案 0 :(得分:0)
好吧,我想我有一个答案,这不是我想要的,但它的效果也一样。
我可以在我的机器上安装一个以上的TOR继电器,并使用torrc文件中我想要的退出节点配置每个TOR继电器,如Robert Davey所述。在我的python脚本中,我可以创建一些进程并使用不同的中继连接每个进程 - 从而为我提供了一个不同的退出节点。可以在这里找到一个例子: https://tor.stackexchange.com/questions/327/how-may-i-run-multiple-tor-relay-instances-in-a-single-linux-machine
如果我想更改已经运行的继电器中的退出节点,我可以编辑相关TOR继电器的torrc文件,并使用词干python库使用SIGHUP信号更新它:
from stem import Signal
from stem.control import Controller
with Controller.from_port(port = 9051) as controller:
controller.authenticate()
controller.signal(Signal.HUP)
答案 1 :(得分:0)
您无需为每个中继编写torrc文件。您可以通过词干动态启动传递参数。例如:
import stem.process
tor_process = stem.process.launch_tor_with_config(
tor_cmd = PATH_TO_TOR_LAUNCHER,
config = {
'SOCKSPort': str(SOCKS_PORT),
'ControlPort': str(CTRL_PORT),
'DataDirectory': DATA_DIR,
'GeoIPFile': DATA_DIR + 'geoip',
'GeoIPv6File': DATA_DIR + 'geoip6',
'ExitNodes': '{es},{pt}' # exiting through Spain or Portugal
}
)
这些是Tor默认使用的地理位置数据库中的国家/地区代码:http://dev.maxmind.com/geoip/legacy/codes/iso3166/