<?php
//Dns - сервер
define ("DNSSRV","8.8.4.4");//DNS сервер от Google
for ($n=1;$n<9;$n++) $wotsrv[] = "login.p".$n.".worldoftanks.net";
echo "\n\rОпределяем ip адреса \n\r";
function syscall($command){
$result="";
if ($proc = popen("($command)2>&1","r")){
while (!feof($proc)) $result .= fgets($proc, 1000);
pclose($proc);
echo "*";
return $result;
}
}
function nslookup($host,$dns=DNSSRV){
$subject = syscall("nslookup ".$host." ".$dns);
$pattern = '/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})+/m';
preg_match_all($pattern, $subject, $matches);
unset ($matches[0],$matches[1][0]);
return $matches[1];
}
function ping($host, $n = 30){
$subject = syscall("ping -w 10000 ".$host." -n ".$n);
$pattern = '/потеряно.\=.(\d{1,4})?|Минимальное.\=.(\d{1,4}).?мсек\,.?Максимальное.\=.(\d{1,4}).?мсек\, Среднее.\=.(\d{1,4}).?мсек/m';
preg_match_all($pattern, $subject, $matches);
$res["lost"]=$matches[1][0];
$res["average"]=$matches[4][1];
return $res;
}
foreach ($wotsrv as $wot_url) $ip_wot[$wot_url] = nslookup($wot_url);
$hosts_file="";
foreach ($ip_wot as $url => $ip){
echo "\n\rПингуем сервер\t$url \n\r";
// url - url-адрес сервера
// ip - массив его адресов
$i=1;
$delay=10000;
$poteri=0;
foreach ($ip as $key => $val){
// key - номер сервера
// val - его ip адрес
$ping_srv = ping ($val,2);
if ($ping_srv["lost"]<>"0") $poteri+=$ping_srv["lost"];
if ($ping_srv["average"]<$delay) {
$i=$key;
$delay=$ping_srv["average"];
}
}
// echo $ip[$i]." ".$url."\n\r";
echo " -- время отклика $delay мс, сервер $ip[$i]\n\r"; if ($poteri>0) echo " есть потери пакетов\n\r";
$hosts_file.=$ip[$i]."\t".$url."\n\r";
}
echo "\n\r**********************************************************";
echo "\n\rПолучен список самых быстрых адресов,\n\rвнесите его в файл : C:\\Windows\\System32\\drivers\\etc\\hosts \n\r\n\r".$hosts_file;
?>