簡體   English   中英

Python中的欺騙IP地址

[英]Spoof IP address in Python

我需要調用某些數據API來獲取一些數據。 想象有幾百萬條這樣的記錄。 對於每條這樣的記錄,我根據記錄ID和API密鑰構造數據URL(返回JSON響應),獲取響應並將其放入我的本地數據庫。 現在,如果我在Mac上進行操作,即使具有16 GB的RAM,這也將花費數月。 而如果我在由AWS提供的64 GB多核EC2桌面上進行嘗試,它的工作速度將非常快。.除非存在問題。

API服務器可以回答的查詢數量受到速率限制。 如果超過40分鍾,它將開始返回錯誤消息,而不是JSON響應。 在EC2機器上,它最終每分鍾最多處理600個請求。 如果工作正常,我將在2-3小時內獲得所有數據。 有趣的是,速率限制是由IP而不是API密鑰強加的。 因此,如果我能夠以某種方式欺騙請求的IP地址(例如,以循環方式從15個IP列表中),它將保持在限制范圍內。 我該怎么做? 我正在使用urllib 這是我的示例代碼:

url = urltemplate % (list_of_params_including_API_key)
data = json.load(urllib.urlopen(url))
//parse the data and load it into database

使用socket.bind方法指定網絡連接的源地址。

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# bind socket to a particular IP. port 0 allows it to select an unused local port
s.bind((spoofed_ip, 0))
s.connect((server_ip, 80))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM