2017-08-01 77 views
1

我试过使用一些第三方服务,如ipify.com,但是很容易得到Max retries异常,因为我发送了很多请求。如何让我的IP与Python 3,套接字和代理(TOR)?

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

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 1link 2link 3),并在我的理解,这是很容易通过代理发送HTTP GET要求与socket模块。

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

需要你的帮助,提前致谢。

回答

1

由于您使用DGRAM(UDP)套接字and Tor only proxies TCP connections,所以无法合并这些技术。

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