1

我正在使用 LWP::UserAgent::DNS::Hosts 将一些 perl 代码转换为 php。

perl 代码所做的是针对负载平衡池中的多个单独的服务器进行页面加载时间测量。由于服务器使用基于名称的虚拟主机,perl 代码使用这一行将 url/hostname 更改为 ip 绑定:

    LWP::UserAgent::DNS::Hosts->register_host(
    'www.mytesturl.com' => '22.22.22.22',
    );

    my $ua = LWP::UserAgent->new;
    $ua->timeout(10);
    $ua->env_proxy;

    #actually enforces new DNS settings as if they were in /etc/hosts
    LWP::UserAgent::DNS::Hosts->enable_override;

    $Timerstart=[gettimeofday];

    my $response= $ua->get('http://www.mytesturl.com');

    $TimeElapsed = tv_interval ($Timerstart,[gettimeofday]);

    if ($response->is_success) {
       print "<br>Response detected - Time to Load: $TimeElapsed seconds\r\n"
    }

我知道我可以使用原始套接字操作来做到这一点,但我希望我可以使用 cURL 或 PHP 中的其他类库来做到这一点。perl 代码实际上在一个循环中重复了这一点,其中有几个不同的 IP 用于相同的 url(每个 ip 是一个特定的服务器),以单独测试服务器。

谢谢-

4

1 回答 1

0

我这样使用它:

curl_setopt($ch, CURLOPT_INTERFACE,'eth0');

或者您也可以使用 IP:

curl_setopt($ch, CURLOPT_INTERFACE,'85.128.174.26');

于 2013-09-26T20:49:55.583 回答