- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用请求访问以下域nzxj65x32vh2fkhk.onion
。
我必须运行并正确配置 session 的对象代理。
import requests
session = requests.session()
session.proxies = {'http': 'socks5://localhost:9050',
'https': 'socks5://localhost:9050'}
print(session.get('http://httpbin.org/ip').text) # prints {"origin": "67.205.146.164" }
print(requests.get('http://httpbin.org/ip').text) # prints {"origin": "5.102.254.76" }
但是,当我尝试访问带有 .onion 域的 URL 时,出现以下错误:
session.get('http://nzxj65x32vh2fkhk.onion/all')
ConnectionError: SOCKSHTTPConnectionPool(host='nzxj65x32vh2fkhk.onion', port=80): Max retries exceeded with url: /all (Caused by NewConnectionError('<requests.packages.urllib3.contrib.socks.SOCKSConnection object at 0x7f5e8c2dbbd0>: Failed to establish a new connection: [Errno -2] Name or service not known',))
我还尝试按照其中一个答案中的建议将 localhost
替换为 127.0.0.1
。不幸的是,结果是一样的。
使用 urllib2 执行相同的请求效果很好。
import socks, socket, urllib2
def create_connection(address, timeout=None, source_address=None):
sock = socks.socksocket()
sock.connect(address)
return sock
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', 9050)
socket.socket = socks.socksocket
socket.create_connection = create_connection
print(urllib2.urlopen('http://nzxj65x32vh2fkhk.onion/all').read()) # Prints the URL's contents
cURL 还能正确检索页面内容。
我使用的是 Python 2.7.13,请求 2.13.0 和 PySocks 1.6.7。 Tor 使用以下命令通过 docker 容器运行:
sudo docker run -it -p 8118:8118 -p 9050:9050 -d dperson/torproxy
我在这里做错了什么?我需要做什么才能让请求识别 .onion URL?
最佳答案
解决方案是使用 socks5h
协议(protocol),以便在本地 DNS 解析过程失败时启用远程 DNS 解析。 See https://github.com/kennethreitz/requests/blob/e3f89bf23c53b98593e4248054661472aacac820/requests/packages/urllib3/contrib/socks.py#L158
以下代码按预期工作:
import requests
session = requests.session()
session.proxies = {'http': 'socks5h://localhost:9050',
'https': 'socks5h://localhost:9050'}
print(session.get('http://httpbin.org/ip').text) # prints {"origin": "67.205.146.164" }
print(requests.get('http://httpbin.org/ip').text) # prints {"origin": "5.102.254.76" }
print(session.get('http://nzxj65x32vh2fkhk.onion/all').text) # Prints the contents of the page
关于python - 使用请求获取 .onion 域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42971622/
我正在尝试设置一个 .onion 地址以指向我的 https 站点。每次我尝试从 .onion 地址访问它时,我都会在 Tor 浏览器中收到警告: Your connection is not sec
我尝试将套接字连接到 TOR 网络中的隐藏服务。我有它隐藏服务的洋葱域主机名。我在设备上安装了 Orbot。我使用代理 Orbot 创建用于连接到隐藏服务的套接字。我是这样做的: Proxy prox
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我正在尝试使用请求访问以下域nzxj65x32vh2fkhk.onion。 我必须运行并正确配置 session 的对象代理。 import requests session = requests.s
我正在尝试构建一个可以抓取 .onion 域上托管的各种页面的网站。这意味着它并不像调用 requests.get("http://XXX.onion") 那么简单,因为 .onion 只能通过 TO
我如何识别文本中的 .onion 链接,记住它们可以以多种方式出现; hfajlhfjkdsflkdsja.onion http://hfajlhfjkdsflkdsja.onion http://w
我正在尝试学习洋葱架构,据我所知,我将我的解决方案组织如下: 领域 Domain.Entities(业务对象) Domain.Interfaces(域服务和存储库的接口(interface)) Dom
任何人都可以使用依赖倒置来解释洋葱架构和分层架构之间的区别吗?他们在我看来完全一样。非常感谢任何输入:) 最佳答案 我一直这样认为:N 层架构满足 DI——有一些约束。 最重要的是,内层的代码不与外层
我有几张表: 在 product 表中,我有一个产品列表。 在 user 表中,我有一个用户列表。 在 group 表中,我有用户组。 在 group_member 表中,我链接了 group 和 m
我正在使用 Asp.net MVC 5、Web Api 2 和 Entity Framework 创建一个项目。我正在使用 Onion 架构设计它,因此我有 DAL、服务和 UI 层。 我的 DAL
我正在研究如何构建项目,所以我偶然发现了 Onion Architecture。据我了解,它更像是一种以领域为中心的焦点架构,而不是数据库驱动类型。 我正在寻找一些github项目来研究和了解更多关于
我有一个由 Onion Architecture 实现的项目,它类似于 Ordering .我需要处理所有层中的验证错误。据我所知,通常有以下两种方法来处理错误: 1- 抛出异常 2- 返回操作结果
Domain-driven design(DDD)和Jeffrey Palermo的“The Onion Architecture”是什么关系? 最佳答案 在我看来——它们是相辅相成的——但是从非常不
我正在为一家出租车公司开发 Web 和移动应用程序,我在前端使用 React.js 和 React-native,在后端使用 ASP.NET Core。我尝试遵循洋葱架构来构建 web api,但这部
我正在设置一个 asp.Net Mvc 4 应用程序并希望使用 Onion Architecture 配置它图案。过去我曾这样使用工作单元模式 public class UnitOfWork : IU
我开始使用域驱动设计和洋葱架构设计一个控制台应用程序,在此之前我想探索一个具有域驱动设计和洋葱架构的完全设计的应用程序。如果您遇到任何类型的示例,请发布指向它的链接。 最佳答案 我和你有同样的问题并得
今天早上我刚开始收到谷歌地图脚本错误。 线路:0 字符:0 错误:脚本错误 代码:0 网址: 我将所有代码更改恢复到早期版本,但它仍然存在。 我将包含下面的脚本,但我必须提到它在与 IE 接口(int
我正在尝试获取托管在 tor 网络中的网页。我正在使用以下代码: import requests def get_tor_session(): session = requests.sessi
我正在尝试实现 Tor 的一些随机生成器.onion涉及生成 80 位数字以创建 16 字符散列的地址。 如何在 Python 中定义这样的变量? .onion format : "16-charac
我无法在我的 Onion Omega 2 plus 板上安装 python pubnub SDK。安装总是在以下阶段卡住: root@Omega-E5A5:/# pip3 install pubnub
我是一名优秀的程序员,十分优秀!