5

我们有几个不同的网站在同一台服务器上运行,它们都访问 1 个特定的 Web 服务,每个服务都有自己唯一的 API 密钥。不幸的是,网络服务有一个基于 IP 地址(不是 API 密钥)的每日限制,所以虽然我们的每个网站都低于每日限制,但它们都超过了 IP 限制。当通过网络浏览器访问时,每个网站都在不同的静态 IP 地址上运行,但是当 perl 脚本在每个网站用户帐户下运行时,它们的出站 IP 地址是相同的。

我的问题是如何使每个 perl 脚本使用特定站点的正确 IP 地址,以便每个脚本都可以保持在 Web 服务的每日限制范围内?更简单地说,perl 脚本如何更改使用 LWP perl 模块进行的调用的出站 IP 地址?解释很好,但代码示例会更好。

在此先感谢您的帮助!

4

1 回答 1

9

使用LWP::UserAgent,您可以简单地使用 ''local_address'' 方法来决定要用于传出连接的 IP 地址:

my $ua = new LWP::UserAgent;
$ua->local_address("10.10.10.10");
my $response = $ua->get("http://stackoverflow.com/");
于 2010-08-07T22:37:19.283 回答