簡體   English   中英

如何使來自不同客戶端的HTTP請求看起來好像它們來自同一IP地址?

[英]How to make HTTP requests from different clients appear that they came from the same IP address?

我使用的第三方API如果請求來自其他IP地址,則會使OAuth令牌無效。 因為該服務在多個主機上運行,​​所以會引起問題。

理想情況下,我希望選擇僅通過該IP路由對此特定API的請求。

我曾考慮過設置代理服務器,但我擔心無法將此代理擴展到超過一台計算機。

有什么建議么?

當然,此處的理想選擇是為每台計算機獲取OAuth令牌。 (或者,甚至更好的是,獲得允許您在IP之間共享令牌的服務。)但是,我認為出於某些原因您不能這樣做。

在這種情況下,您可能確實希望在此處使用代理服務器。

僅通過該代理路由對此特定API的請求的選項非常簡單。 設置一個顯式代理而不是透明的代理,並為這些特定方法指定該顯式代理。

由於您沒有向我們展示甚至沒有描述您的代碼,因此我無法向您展示如何使用您正在使用的任何庫,但這是如何通過requests ,而使用stdlib並不難urllib或大多數其他第三方庫。

但是,為了完整起見:只要您所有的機器都在您可以控制的路由器后面,就可以使單獨的機器看起來具有相同的IP地址是絕對不可能的。 實際上,這正是通過NAT通過典型的家庭DSL /電纜設置所得到的:每台機器都有自己的內部專用地址,但是它們都共享一個公用地址。 但這可能不是您想要的。 一方面,如果您的計算機實際上是GCP主機,則您將無法控制路由器,甚至可能無法控制它們是否在同一網絡中(以防您正在考慮運行軟件路由器進行管道傳輸)他們都通過)。 同樣,NAT會給服務器帶來各種問題。 而且,由於您擔心的是擴展性,一旦必須擴展到單個子網之外,使用NAT就是一場噩夢。 而且,如果這些實例旨在用作服務器,則更是如此(如果您在GCP上運行它們,這似乎很有可能)。 最后,要使用NAT僅與一種服務進行通信,您要么需要非常復雜的路由表,要么需要每台計算機額外的網絡接口(可以將其放置在其他路由器后面)。 所以,我懷疑這就是您在這里真正想要的。

暫無
暫無

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

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