【问题标题】:If my server has multiple IP addresses, how can I run a script using each of the IP addresses?如果我的服务器有多个 IP 地址,如何使用每个 IP 地址运行脚本?
【发布时间】:2014-12-24 03:30:35
【问题描述】:

假设我的服务器有 10 个 IP 地址。

我想运行相同的 PHP 脚本 10 次,但每次都使用不同的 IP 地址。 PHP 脚本将访问互联网。

这样的事情可能吗? (每次使用不同的IP)

如果是这样,你能指出我能够做到这一点的正确方向吗?

谢谢。

【问题讨论】:

  • 答案归结为 - 您的服务器如何“获取”这 10 个 IP 地址?这应该为您指明正确的方向。

标签: php ip


【解决方案1】:

您可以选择要绑定的接口:

$options = array(
    'socket' => array(
        'bindto' => '192.168.0.12:0',
     ),
);

$context = stream_context_create($options);

/* Sends an http request to www.example.com through local interface 192.168.0.12:0 */
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);

http://php.net/manual/en/function.stream-context-create.php

【讨论】:

  • 你太棒了。谢谢!
  • 如果我不想更改代码,或者我正在使用二进制文件,如何从命令行运行脚本,为传出请求选择特定的 IP 地址?我只想更改该命令或 shell 会话的 ip
  • @MarcoMarsala,这在很大程度上取决于二进制文件。如果二进制文件具有硬编码的 IP 地址,则无法更改它们。如果二进制文件允许您使用命令行参数来选择 IP 地址,那么您可以这样做。你必须检查你的二进制文件。
  • 我找到了解决办法,我用ip route来改变当前会话的ip
  • @bleemboy 你能发布你的解决方案吗?我想用它来卷曲
猜你喜欢
  • 1970-01-01
  • 2019-09-30
  • 2020-01-10
  • 2011-11-02
  • 2013-07-17
  • 1970-01-01
  • 2013-09-08
  • 2015-06-21
  • 1970-01-01
相关资源
最近更新 更多