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 查询服务器,但轮换它们(在每个请求中使用不同的服务器),以确保您不会超过允许的阈值。
我试过使用一些第三方服务,比如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, socket
模块通过代理发送 HTTP GET
请求非常容易。
但是我不明白,我怎样才能合并这两种技术并通过代理连接到 8.8.8.8。
需要您的帮助,在此先感谢。
您无法合并这些技术,因为您使用的是 DGRAM (UDP) 套接字,and Tor only proxies TCP connections。
因此您需要连接到基于 TCP 的服务器。最好的选择是您自己的服务器 - 在 AWS 转储 SERVER_IP 上设置一些东西相当容易,并且根据您的负载,它可能不会花费太多 - 如果有的话。或者您可以使用免费的 IP 查询服务器,但轮换它们(在每个请求中使用不同的服务器),以确保您不会超过允许的阈值。