我正在尝试使用TOR请求,首先是通过HTTP,然后是HTTPS。
我尝试了所有用于TOR的python库,并且所有这些库都有相同的问题,即HTTPS连接。 我的问题不是与HTTPS的真正沟通,如果我尝试获取新的TOR IP,使用HTTP请求刷新IP地址,但与HTTPS不一样!所以,我仍在使用TOR网络,但总是使用相同的IP ..
from stem import Signal
from stem.control import Controller
import requests
import time
import os
session = requests.session()
# signal TOR for a new connection
session.proxies = {'http': 'socks5://127.0.0.1:9150',
'https': 'socks5://127.0.0.1:9150'}
def new_connection():
with Controller.from_port(port = 9151) as controller:
controller.authenticate(password="####")
# NUOVA CONNESSIONE
print 'Trying to connect with new IP...'
controller.signal(Signal.NEWNYM)
time.sleep(5) #5 sec
print "New connection as "+session.get("http://ipecho.net/plain").text
response = session.get("https://www.google.it/").text
print response
还有一件事...... 我正在使用tor版本的OSX,但我无法获得它的控制端口,所以我使用Tor浏览器(9150)与控制端口9151
答案 0 :(得分:0)
当您获得新的身份识别身份时,您可能仍然拥有相同的IP地址,因为只有一定的服务量您可以尝试这样的事情:
def get_new_tor_ip():
try:
ip_current = session.get("http://ipecho.net/plain").text
except:
ip_current = OWN_IP
ip_old = ip_current
socket.socket = OWN_SOCKET
with Controller.from_port(address='127.0.0.1', port=9051) as controller:
controller.authenticate() # optional
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
socket.socket = socks.socksocket
while True:
controller.signal(Signal.NEWNYM)
try:
ip_current = str(session.get("http://ipecho.net/plain").text
if ip_current != (ip_old and OWN_IP):
break
sleep_time = random.randint(1, 3)
time.sleep(sleep_time)
except:
pass
答案 1 :(得分:0)
如果您正在使用词干库,它将为您处理:
from stem import Signal
from stem.control import Controller
with Controller.from_port(port = 9051) as controller:
controller.authenticate()
controller.signal(Signal.NEWNYM)
如果您没有为tor设置任何哈希密码,则可以删除controller.authenticate()
。
如果要为Tor控制器端口设置密码,请执行以下操作:
tor --hash-password my_password
它将生成类似此字符串16:3F347B435567CBE1608384B9236897C7322A8EB241CFE5855863F32FB9
的内容。现在修改torrc文件:
sudo vim /etc/tor/torrc
取消注释这些行:
ControlPort 9051
HashedControlPassword 16:E600ADC1B52C80BB6022A0E999A7734571A451EB6AE50FED489B72E3DF
CookieAuthentication 1