Python 如何获取我的IP 3、套接字和代理(TOR)?

How to get my IP with Python 3, socket and proxy (TOR)?

我试过使用一些第三方服务,比如ipify.com,但是很容易出现Max retries异常,因为我发送了很多请求。

所以我找到了一种非常简单的方法来通过 Google DNS (link) 获取我的 IP。这是代码:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
print(s.getsockname()[0])
s.close()

此外,我已经阅读了几篇文章 (link 1, , link 3),据我了解,使用 socket 模块通过代理发送 HTTP GET 请求非常容易。

但是我不明白,我怎样才能合并这两种技术并通过代理连接到 8.8.8.8。

需要您的帮助,在此先感谢。

您无法合并这些技术,因为您使用的是 DGRAM (UDP) 套接字,and Tor only proxies TCP connections

因此您需要连接到基于 TCP 的服务器。最好的选择是您自己的服务器 - 在 AWS 转储 SERVER_IP 上设置一些东西相当容易,并且根据您的负载,它可能不会花费太多 - 如果有的话。或者您可以使用免费的 IP 查询服务器,但轮换它们(在每个请求中使用不同的服务器),以确保您不会超过允许的阈值。