Сервер ру6

18 Янв 2010
468
0
16
44
#1
Помните раньше тема была. где скидывали адрес серваков и их добавляли в какой то список и игра переставала лагать?
Что то не могу эту тему найти(((
Было бы не плохо добавить РУ6
RU6 Россия, Москва
login.p6.worldoftanks.net
188.127.241.30
188.127.241.40
188.127.241.50
188.127.241.60
 
17 Окт 2013
71
0
6
#2
наверное речь идет о файле hosts туда можно прописать ip адреса всех серверов и тогда системе не придется обращаться к DNS серверам провайдера для определения ip адреса сервера по его имени
кстати вот список всех серверов RU-кластера:
login.p1.worldoftanks.net
login.p2.worldoftanks.net
login.p3.worldoftanks.net
login.p4.worldoftanks.net
login.p5.worldoftanks.net
login.p6.worldoftanks.net
login.p7.worldoftanks.net
login.p8.worldoftanks.net
 
Последнее редактирование:
19 Сен 2010
2,116
3
38
#3
RedX, речь идёт как я понял о том, что представители ростелекома выделяли отдельный канал для серверов танков...
 
17 Окт 2013
71
0
6
#6
На какой сервер лучше пинг у Ростелекома, и вообще какой средний пинг у нас в городе?

---------- Добавлено в 12:26 ---------- Предыдущее сообщение было написано в 12:23 ----------

наваял скрипт на PHP, определяющий все ip адреса русского кластера серверов
Код:
<?php
//Dns - сервер --- [COLOR=Red]ЗДЕСЬ НУЖНО ПОСТАВИТЬ DNS СВОЕГОПРОВАЙДЕРА[/COLOR] 
define ("DNSSRV","[COLOR=Red]192.168.0.8[/COLOR]");
for ($n=1;$n<9;$n++) $wotsrv[] = "login.p".$n.".worldoftanks.net";
function syscall($command){
    $result="";
    if ($proc = popen("($command)2>&1","r")){
        while (!feof($proc)) $result .= fgets($proc, 1000);
        pclose($proc);
        return $result;
        }
}
function nslookup($host,$dns){
   $subject = syscall("nslookup ".$host." ".DNSSRV);
   $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 = 5){
   $subject = syscall("ping ".$host." -n ".$n);
   $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];
}


foreach ($wotsrv as $host_) $result[$host_] = nslookup($host_,"192.5.5.241");
print_r($result);



?>
работает только на windows системах
для запуска нужен интерпретатор php или локальный сервер
(можно использовать DENVER или OpenServer)

---------- Добавлено в 12:33 ---------- Предыдущее сообщение было написано в 12:26 ----------

позже прикручу пинг и сделаю вывод информации по серверам с наименьшим откликом в виде:
Код:
192.33.4.12  login.p7.worldoftanks.net
192.228.79.201   login.p8.worldoftanks.net
так можно будет занести данные в файл hosts
этим самым заставив игру цепляться только этим адресам
 
17 Окт 2013
71
0
6
#8
поподробнее для одаренных, что и куда?
Смысл сей идеи прост:
1)скрипт определяет все ip адреса каждого сервера русского кластера
2)каждый адрес пингуется и для каждого сервера определяется наиболее быстрый его адрес, он и запоминается.
3) строится итоговый список соответствия в вышеуказанном виде

его можно будет копировать и вставлять в файл hosts

Терпение, друг!
Все будет.

------------------------
P.S. Чтобы все это проделать, нужно быть хотя бы не продвинутым, но уверенным пользователем ОС.
 
19 Сен 2010
2,116
3
38
#9
RedX, каждый сервер имеет несколько аёпишек, когда делали канал отдельный на ру1, ру1, ру4 - то добавляли диапазоны адресов... причём вышло так, что пропали потери пакетов, но когда канал перегружен, то пакеты доходят с большим пингом. В игре это сказывается опять же теми же подлагиваниями...
 
17 Окт 2013
71
0
6
#10
Программа готова!
вот ссылка на исходник на PHP
http://files.mail.ru/56C1DFB19A5943A1B8EF3342A75CC868
и откомпилированный exe файл (в зип архиве)
http://files.mail.ru/AC242270A47C457BA961E92919FECB9F

Zip - скачать, распаковать и запустить файл wot-ping в командной строке.


Код исходника.
Код:
<?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;
?>
 
17 Окт 2013
71
0
6
#12
Проверить пока не могу - комп занят.
к тому же, как выяснилось, пришлось dns-сервер гугла заменить на локальный сервер провайдера, в моём случае это Мегафон

Sent from my Novo7Fire using Drahelas App mobile app

---------- Добавлено в 21:16 ---------- Предыдущее сообщение было написано в 21:09 ----------

ещё нужно подогнать пару параметров проверки - это количество запросов и размер пакета в байтах, но это чисто экспериментальные данные, стандартный запрос равен 32 байта, какими же пакетами оперирует сама игра - чёрт его знает.

Sent from my Novo7Fire using Drahelas App mobile app

---------- Добавлено в 23:10 ---------- Предыдущее сообщение было написано в 21:16 ----------

http://files.mail.ru/0BFDBE547F3A481EA27C95A957A93E42
новая ссылка на доработанный скрипт


Sent from my Novo7Fire using Drahelas App mobile app
 
17 Окт 2013
71
0
6
#14
не проще

проверил реальный прирост есть
по крайней мере после добавления данных о быстрых серверах
игра конектится (судя по тем же пингам) именно к ним

скрипты доработал еще
последняя и пока окончательная версия здесь
https://cloud.mail.ru/public/7ff74ac7b8eb/wot-ping.7z
wot-ping.exe - собирает информацию и формирует файл wot-hosts.txt
в нем все данные для внесения в C:\windows\system32\drivers\etc\hosts

---------- Добавлено в 01:00 ---------- Предыдущее сообщение было написано в 00:54 ----------

RedX, а не проще все шесть сервков (точнее, их адреса) добавить в host и сохранить.....???
не проще потому что приоритет в определении ip адреса по url
у файла hosts всегда был есть и будет выше чем dns-сервера

потому наши танки, запускаясь ловят ip не от dns-сервера провайдера,
а из нашего списка, а в списке мы прописали сервера с самым меньшим пингом

если записать туда все сервера, как ты предложил, то смысла не будет, - это будет просто дублирование серверов DNS, точнее их данных

вот как-то так....
 
17 Окт 2013
71
0
6
#16
проверял вчера до 2х ночи ))) :good:

по крайней мере у меня стало лучше, только есть нюансы:

1) скрипт долго отрабатывает,
2) нужно смотреть при работе на сообщения о потере пакетов и делать выводы...(какой сервер потом выбирать при запуске игры)

доработаю скрипт еще
 
Последнее редактирование: