python - 为什么我的代理仍然转发我的个人 IP 地址?
问题描述
我已经被这个问题困扰了一周左右,但我仍然无法弄清楚为什么它不起作用。该程序检查用户名的可用性,但由于以 ip 为目标的速率限制,我需要代理。我使用的代理是免费的,但即使尝试了所有可用的代理排序和列表,它仍然会发生。我知道速率限制是基于 IP 的。代理函数在调用时返回一个新代理。我做到了是http
因为同时使用http
和https
代理不断出现连接错误。
我的代码:
# read proxy file
with open('external/proxies.txt', 'r') as proxyFile:
proxyList = [proxyIp.strip() for line in proxyFile.readlines() for proxyIp in line.split(',') if proxyIp]
...
# change proxies
def proxies(self):
self.randomProxy = random.choice(self.proxyList)
print(f"{Fore.LIGHTBLACK_EX}[+]{Fore.RESET} Proxy: {self.randomProxy}")
return {'http': f'http://{self.randomProxy}'}
...
# check api
def checker(self):
self.proxer = self.proxies()
r = requests.get(url, headers=self.headers, proxies=self.proxer)
if self.checkedCount % 75 == 0:
self.checkedCount += 1
self.proxer = self.proxies()
self.login()
if r.status_code == 200:
...
代码输出:
[+] Proxy: 72.195.34.59:4145
[+] Proxy: 165.22.91.137:50123
[+] Proxy: 70.166.167.36:4145
r.contents 输出:
# on a succesful request (note that "clientIp":"my.own.ip.adr")
b'{"platformType":"uplay","ticket":"1234","twoFactorAuthenticationTicket":null,"profileId":"6c992fe3-3b23-4e9f-8004-5787890b1c02","userId":"6c992fe3-3b23-4e9f-8004-5787890b1c02","nameOnPlatform":"gxzs402","environment":"Prod","expiration":"2021-11-09T23:46:28.3240882Z","spaceId":"8f9fe635-253f-4550-9205-bc797b22ae38","clientIp":"my.own.ip.adr","clientIpCountry":"US","serverTime":"2021-11-09T20:46:28.3267513Z","sessionId":"5a29f740-0f34-4291-add9-ca1b97430a80","sessionKey":"1234","rememberMeTicket":null}'
# on an error
b'{"moreInfo":"","errorCode":1101,"httpCode":429,"errorContext":"Shipyard.Profiles.Services","message":"Too many calls per IP address.","environment":"prod","additionalDetails":{},"transactionTime":"2021-11-09T20:51:52.4189961Z","transactionId":"2cf3f459-0e8d-4533-95df-429c6480450e"}'
解决方案
推荐阅读
- scala - 为什么会立即终止?
- rpm - 在定义的目录中安装 RPM 包
- python - 如果条件在 django 中没有按预期响应类似按钮
- deadlock - 超过2个进程的死锁,可能吗?
- php - 如何在 Codeigniter PHP 中删除 stdClass 对象
- c - 有人可以帮我弄清楚为什么 VS Code 拒绝承认 getline 作为一个函数吗?
- x86 - 如何通过 GRUB 调用 ExitBootService
- angular - 如何在 NativeScript 对话框中使用 DatePicker
- javascript - 在更新前挂钩中调用分配给变量的方法
- java - 绘画程序可以在 Windows 上运行,但不能在我的 Mac 上运行?