download this file: run-http.php view text/plain: run-http.php file encoding: UTF-8 [goback]
<?php
##
##
function parse_conf($file)
{
  
$conf = @parse_ini_file($file,TRUE);
  
$names array_keys($conf);
  foreach(
$names AS $name)
  {
    if(!
$s $conf[$name]['server']) continue;
    if(
is_array($s)) $tmp implode(' ',$s);
    
$tmp =  preg_split('/[\s,]+/',$tmp);
    
$conf[$name]['server'] = array_unique($tmp); // rewrite
  
}

  return 
$conf;
}

$cdir dirname(__FILE__);
require_once 
$cdir.'/class.socket.http.php';

$conffile $cdir.'/list.conf.ini';
$wdir '/data/www/127.0.0.1/latency2';

## core default
##
$_method 'HEAD';
$_connect_timeout 5;
$_connect_retry 1;
$_connect_port 80;
$_read_timeout 10;

$conf parse_conf($conffile);
$method $conf['global']['method'];
$connect_timeout = (int)$conf['global']['connect.timeout'];
$connect_retry   = (int)$conf['global']['connect.retry'];
$connect_port    = (int)$conf['global']['connect.port'];
$read_timeout    = (int)$conf['global']['read.timeout'];
unset(
$conf['global']);

## set global and overwrite
##
$_method $method $method $_method;
$_connect_timeout $connect_timeout $connect_timeout $_connect_timeout;
$_connect_retry   $connect_retry   $connect_retry   $_connect_retry;
$_connect_port    $connect_port    $connect_port    $_connect_port;
$_read_timeout    $read_timeout    $read_timeout    $_read_timeout;

//print_r($conf);
//exit;
foreach($conf AS $site=>$arr)
{
  
$url $arr['url'];
  
$servers $arr['server'];
  if(!
$url && !$arr['server']) continue;
  if(!
$servers$servers[] = ''// dnslookup

  
$method $arr['method'] ? $arr['method'] : $_method;
  
$connect_timeout $arr['connect.timeout'] ? $arr['connect.timeout'] : $_connect_timeout;
  
$connect_retry   $arr['connect.retry']   ? $arr['connect.retry']   : $_connect_retry;
  
$connect_port    $arr['connect.port']    ? $arr['connect.port']    : $_connect_port;
  
$read_timeout    $arr['read.timeout']    ? $arr['read.timeout']    : $_read_timeout;

  foreach(
$servers AS $ip)
  {
    list(
$timeinfo,$h,$tsize,$ip,$uri) = socket::http($url,$ip,$connect_port,$method,$connect_timeout,$connect_retry,$read_timeout);
    if(
$h)
    {
        
/*
        socket::getms($_cs,$_ce),       // connect time
        socket::getms($_ws,$_we),       // write(request) time
        socket::getms($_we,$_fb),       // first byte time, server latency think time
        socket::getms($_we,$_ee),       // response time
        socket::getms($_cs,$_ee)        // total time
        */
        //list($ct,$wt,$fb,$rt,$tt) = $timeinfo; // connect,write,first.byte,response,total
        
$tt implode(',',$timeinfo);
    }
    else 
$tt 'ERROR';

    
$pdata date("Ymd\tH:i")."\t[$site]\t".sprintf("%-20s\t%-20s\t",$ip,$tt)."$tsize\t".$h['status'];
    
$turl $url $url "http://$ip$uri";
    echo 
"$pdata $method $turl\n";
    
//file_put_contents("$wdir/$ip.url.txt",$pdata."\n",FILE_APPEND|LOCK_EX);
  
}

}
exit(
0);
?>