我正在构建一个程序来从.onion网站获取一些内容。我已经设法让程序连接到tor并改变它的身份,但我得到一个警告说我可能泄漏私人信息。最糟糕的是,该计划无法访问.onion网站。
我已经搜索了一下,但我能找到的唯一答案有点令人费解,而且对这个人的情况过于具体。我找到的另一个解决方案是确保socks.PROXY_TYPE_SOCKS5在那里,而不是其他一些变体,但我已经有了。
我目前的代码:
import socket
import socks
import httplib
import urllib2
def getURLSource(url):
return urllib2.urlopen(url).read()
def getURLSourceHTTPLIB(url):
conn = httplib.HTTPConnection(url)
conn.request("GET","/")
response = conn.getresponse()
return response.read()
def connectTor():
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,"127.0.0.1",9050,True)
socket.socket = socks.socksocket
def newIdentity():
socks.setdefaultproxy()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("127.0.0.1",9051))
s.send("AUTHENTICATE\r\n")
responce = s.recv(128)
if responce.startswith("250"):
s.send("SIGNAL NEWNYM\r\n")
s.close()
connectTor()
def fetchIP():
conn = httplib.HTTPConnection("my-ip.heroku.com")
conn.request("GET","/")
response = conn.getresponse()
return response.read()
def main():
connectTor()
print("Connected to Tor")
print(fetchIP())
#print(getSource("am4wuhz3zifexz5u.onion"))
print(getURLSource("http://am4wuhz3zifexz5u.onion/Library/English/"))
main()
警告讯息: “[时间和日期印章]潜在危险连接! - 您的一个应用程序通过Tor建立连接到”[CENSORED IP]“使用可能泄漏目的地信息的协议。请确保您将应用程序配置为仅使用SOCKS4a或SOCKS5具有远程主机名解析。“