【问题标题】:switch to another IP on server when python requests goes out当python请求出去时切换到服务器上的另一个IP
【发布时间】:2016-04-05 07:23:31
【问题描述】:

我有一个具有 3 个不同 IP 地址的 VPS。 我有一个 python 脚本,它每 1 小时抓取一个特定的网站 例如这是我的 python 请求:

 my_request = requests.get('https://example.com/timeline.json')

我唯一想要的是每次我的 python 流量从服务器发出时,它随机使用该 IP 地址

【问题讨论】:

  • @JavierBuzzi 这可能会从池中选择一个随机地址,但它对在传出请求中使用该地址没有帮助。
  • @JavierBuzzi ...什么? 321.321.321.321345.345.345.345 绝对不是有效的 IPv4 地址。请阅读this,在您向更多人提供不良信息之前。
  • @EhsanKordloo 如果您确实有多个公共 IP 地址,那么这是一个路由问题,不会在您的 VPS 上配置。但请确保您谈论的是公共 IP 地址,而不是私有 IP 地址。
  • @vesche 这不是一个路由问题。 OP 询问如何控制在传出请求中使用哪个 IP 地址。这是一个有效的问题。
  • @vesche 我认为占位符的定义让你无法理解

标签: python linux server ip


【解决方案1】:

因此,在 cmets 中经过长时间的审议后,我可以为您指出一些资源,希望它们能引导您找到答案。这个问题很难给出明确的答案,因为我不知道您使用的是哪种虚拟基础架构或网络是什么样的。

Here 是一个有类似愿望的线程,但最终没有得到答复。但是,很明显,如果您使用 AWS,则需要使用 VPC。您必须以特殊方式配置您的 ENI 以间歇性使用您的公共 IP 地址,要了解有关 VPC 中 ENI 的更多信息,请参阅here

This article 详细说明了您想要完成的任务,但使用的是具有特殊 NAT 配置的 Vyatta 路由器。还提到能够使用高级 iptables 规则来完成此操作,这可能值得研究。

无论如何,您无法在执行爬网的脚本内部使用各种公共 IP 地址完成流量传输。要获得这种效果,您需要以某种特殊方式修改主机网络配置(高级 iptable 规则或定期更改默认路由),更改虚拟路由器的配置(特殊 NAT/路由规则),或使用特定于您的方法虚拟主机平台 (Amazon VPC)。

【讨论】:

    猜你喜欢
    • 2016-05-15
    • 2021-07-31
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 2017-09-07
    • 2015-05-23
    • 2011-02-20
    • 1970-01-01
    相关资源
    最近更新 更多