php curl url ip address binding

时间:2012-11-28 15:10:14

标签: php curl lwp-useragent

我正在使用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是一个特定的服务器)来单独测试服务器。

谢谢 -

1 个答案:

答案 0 :(得分:0)

我这样使用它:

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

或者您也可以使用IP:

curl_setopt($ ch,CURLOPT_INTERFACE,'85 .128.174.26');