Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Расположение серверов Counter Strike 1.6

, Умные мысли по географии и обновлению мастерсервера
Статус пользователя Metal Messiah
сообщение 19.11.2014, 2:21
Сообщение #1


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
Из собранных за год данных было извлечено 367647 адресов серверов CS1.6 (уникальная пара ip:port), из которых 159541 уникальных IP адресов. В среднем на 1 адрес приходится 2,3 сервера. По базе GeoIP были определены страны, которым принадлежат указанные IP адреса (удалось для 143389 серверов, т.е. 90%), и нарисовалась вот такая интересная картина:
Скрытый текст

DE => 30281 - не удивительно, количество датацентров в Германии зашкаливает
RU => 23814 - тоже не удивительно
FR => 10202 - ни разу не видел французских серверов, но они есть
US => 9075
DK => 6558
RO => 5832 - у румынов почетное 6 место
UA => 5768 - к сожалению, Украина после Румынии, но место более почетное
GB => 4326
EU => 3589 - европейские IP, страну определить не реально
KZ => 3076
BR => 2991
SE => 2703
PL => 2307
CN => 2280
TR => 1944
NL => 1875
ES => 1729
PT => 1549
NO => 1473
AT => 1467
BG => 1449
FI => 1217
KR => 1058
BE => 937
LT => 928
JP => 919
CZ => 914
HU => 772
CA => 685
LV => 683
CH => 651
BY => 641
IT => 638
TW => 591
GR => 582
SA => 519
IL => 502
IN => 494
AR => 491
AU => 489
EE => 458
RS => 374
SK => 360
MD => 350
AE => 231
MX => 218
VE => 214
IE => 190
HK => 181
ZA => 139
SI => 135
CL => 128
VN => 124
PK => 124
EG => 124
HR => 123
IS => 117
TN => 110
GE => 106
DZ => 90
TH => 75
BA => 75
KW => 65
CO => 60
MA => 60
MK => 56
NZ => 55
KG => 54
CY => 54
SG => 50
IR => 49
MY => 48
LU => 47
ID => 44
PE => 43
AZ => 38
MN => 37
AM => 36
AL => 32
JO => 32
UZ => 27
FO => 27
PH => 26
CR => 24
LB => 22
BH => 21
BD => 20
PA => 19
ME => 19
SY => 18
KE => 17
MT => 17
EC => 16
UY => 15
PS => 13
TJ => 11
NG => 11
PY => 11
LI => 9
QA => 8
DO => 8
VA => 7
PR => 6
LK => 6
NP => 6
BO => 6
LY => 5
IQ => 5
GT => 5
AF => 5
MU => 5
NA => 4
JM => 4
MV => 4
OM => 3
NI => 3
HN => 3
UG => 3
MO => 3
TZ => 3
MZ => 2
KY => 2
GU => 2
SV => 2
CU => 2
MP => 2
GI => 2
SZ => 1
AW => 1
KI => 1
NC => 1
BN => 1
MF => 1
AX => 1
MM => 1
LC => 1
PW => 1
SC => 1
GL => 1
YE => 1
RE => 1
MG => 1
KH => 1
SN => 1
BS => 1
LA => 1
SD => 1
LS => 1
AO => 1
BB => 1
CM => 1
SR => 1

В принципе, имеющиеся данные позволяют также отсеять сервера-однодневки и пересчитать, но не вижу особого смысла в этом, надеюсь что статистика сделает это за меня.

Собственно, к чему это я смотрел. В ответ на запрос кс-клиента к мастерсерверу, согласно официальному протоколу Valve, выдается список серверов по заданным критериям, первым и обязательным из них является регион, который задается переменной типа byte (0-255). Valve зарезервировали следующие значения:
0x00 US East coast
0x01 US West coast
0x02 South America
0x03 Europe
0x04 Asia
0x05 Australia
0x06 Middle East
0x07 Africa
0xFF Rest of the world
Как правило, значение 255 используется для вывода всех серверов без критериев, поправьте меня если это не так.

Всего в базе GeoIP прописаны 242 страны (id 1..245 с пропусками). Естественно, там отсутствует информация о ЛНР, ДНР, разделенного Судана и других последних модификаций карты мира. Итого, мы имеем 246 свободных кодов стран на 242 страны.
Вы, наверное, уже поняли к чему я веду.
Есть смысл, особенно для владельцев МС с большим количеством уников и приличным количеством серверов в списке, реализовать возможность отсева серверов по стране. Таким образом, допустим, можно будет выбрать только русские или только украинские или только белорусские сервера, и таким образом увеличивается количество заходов из своей страны, т.е. меньше пинг, выше "качество" игроков.
Я тут не учитываю тот факт, что Россия большая и в Калининграде сервер из Владивостока ни к чему, также то что в том же Воронеже отличный пинг на Харьков, а Харьков это Украина, и то что в некоторых, особенно островных странах, полтора сервера на каждую и номера под них выделять жалко, но не выделять тоже не корректно.

Что для этого нужно?

1. Выработать какой-то общий стандарт соответствия кодов и стран и опубликовать его.
С одной стороны, можно брать id из mysql версии базы GeoIP (таблица net_country). Чем обусловлен порядок стран там я не знаю, но можно взять алфавитный либо мой по убыванию.

2. Модифицировать клиент CS 1.6. Все что надо - правка 2 файлов, которая делается в любом текстовом редакторе. Делается 1 раз, потом все их вшивают в свои сборки. 1 файл языковой и содержит названия пунктов выпадающего списка в произвольном порядке (генерится скриптом из БД id - country code - country name) и 2 файл, который содержит непосредственно список пунктов этого комбобокса, в том порядке, в котором вы хотите чтобы они выбирались. Например, кто-то может захотеть первой в списке поставить Румынию, переставляется методом вырезать-вставить.

3. Модифицировать код MS. Считывать из БД не только IP:Port, но и числовой код страны, в запросе анализировать код и выдавать только сервера из выбранной страны. Если их нет... можно выводить все, можно пустой список как положено. Тут особенно интересно. Я не ковырял исходники МС из паблика, более того я не знаю как релизовано взаимодействие МС-БД у тех кто их писал сам. Для своих нужд я писал свой МС. Думаю, это не сложно реализовать.

Что думаете, коллеги?


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 6 раз
   Цитировать сообщение
Статус пользователя ETO_BYLO_LETOM
сообщение 19.11.2014, 2:26
Сообщение #2


Иконка группы

Стаж: 14 лет
Город: Краснодар

Сообщений: 3393
Благодарностей: 4387
Полезность: 805

Не интересно.
кому надо отсортируют по пингу.


😄
MasterServer.su прозрачнее чем твои окна дома
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 19.11.2014, 2:28
Сообщение #3


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
Ок, тогда вопрос: нафига прогружать с МСа на клиент 10к серверов и ждать обновления инфы о всех если можно прогрузить только пару сотен со своей страны с опросом только этих серверов (с учетом того что выбор региона вроде бы сохранялся при перезапуске игры)

Отредактировал: Metal Messiah, - 19.11.2014, 2:29


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ETO_BYLO_LETOM
сообщение 19.11.2014, 2:43
Сообщение #4


Иконка группы

Стаж: 14 лет
Город: Краснодар

Сообщений: 3393
Благодарностей: 4387
Полезность: 805

Metal Messiah,
у меня другой вопрос. зачем доказывать свою точку зрения, если ты просил высказать всех свою?

я не мазахист 10к серверов сувать, из них 70% будет портить клиент.

я думаю будет правильней реализовать это и поделиться.
кому надо - схавает.


😄
MasterServer.su прозрачнее чем твои окна дома
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
ops244
сообщение 19.11.2014, 2:45
Сообщение #5
Стаж: 15 лет

Сообщений: 958
Благодарностей: 939
Полезность: 0

мой сервак на мониторингах пишет, что в Бельгии, хотя в Раше стоит
82.146.33.118:27015
мб меня нае**вают?
хотя пинг хороший
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 19.11.2014, 11:20
Сообщение #6


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата
По базе GeoIP были определены страны

база на 10 лет устаревшая?)))
хоть версию и дату выпуска базы напиши


Цитата
Как правило, значение 255 используется для вывода всех серверов без критериев, поправьте меня если это не так.

одновременно используется два значения, то что указано и 255
т.е. 255 работает всегда, не зависимо от указанного sv_region

Цитата
Собственно, к чему это я смотрел. В ответ на запрос кс-клиента к мастерсерверу, согласно официальному протоколу Valve, выдается список серверов по заданным критериям, первым и обязательным из них является регион, который задается переменной типа byte (0-255). Valve зарезервировали следующие значения:


надо дописать про регион - было актуально лет 10 назад
valve/steam давно уже писали что отключили sv_region для своего МС

sv_region has been removed from the HLDS
так что точно не работает
фильтрация, если она и есть - работает только на клиенте игры, а не на МС
Цитата
реализовать возможность отсева серверов по стране.

один вопрос: нафига?
пользовался ростелеком
до МСК пинг 120 мс
до Германии (дц Hetzner) пинг 20 мс
до Амстердама через Финляндию пинг 60 мс

так что думаю ерунда всё это
нет ни какого смысла в этом
игрока волнует пинг, а не физическое местоположение сервера
какая разница где сервер стоит?
главное что бы пинг и маршрут до него был хороший, а остальное уже от самого сервера зависит
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Anton1o
сообщение 19.11.2014, 11:24
Сообщение #7


Стаж: 17 лет

Сообщений: 919
Благодарностей: 1392
Полезность: 1160

ops244,
https://apps.db.ripe.net/search/query.html?...t=82.146.33.118
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя csnet
сообщение 19.11.2014, 11:28
Сообщение #8
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

идея далеко не новая, я еще писал во флейме.

https://c-s.net.ua/forum/topic66339.html?hl=%EC%F1+geoip

мне интерестно отдавать российские сервера россиянам, и китайцам китайские. чтобы не делать 10к серверов для всех.

Отредактировал: csnet, - 19.11.2014, 11:31


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 19.11.2014, 11:34
Сообщение #9


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(csnet @ 19.11.2014, 12:28) *
идея далеко не новая, я еще писал во флейме.

https://c-s.net.ua/forum/topic66339.html?hl=%EC%F1+geoip

мне интерестно отдавать российские сервера россиянам, и китайцам китайские. чтобы не делать 10к серверов для всех.


раздавать различные списки серверов - достаточно просто...
определил ip адрес клиента, посмотрел кто такой - отдал ему свой список серверов...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя csnet
сообщение 19.11.2014, 11:35
Сообщение #10
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

угу но мс никто не хочет переделывать так.


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ETO_BYLO_LETOM
сообщение 19.11.2014, 11:35
Сообщение #11


Иконка группы

Стаж: 14 лет
Город: Краснодар

Сообщений: 3393
Благодарностей: 4387
Полезность: 805

csnet,
не найдешь точную гео базу.
будут не соответствия.

пс делал как-то для теста такую выборку.


😄
MasterServer.su прозрачнее чем твои окна дома
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 19.11.2014, 11:38
Сообщение #12
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

вспомнилось ..

Цитата
россиянам - россию, китайцам - китайские


кесарю - кесарево rofl.gif


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
am1go
сообщение 19.11.2014, 11:39
Сообщение #13
Стаж: 12 лет

Сообщений: 214
Благодарностей: 129
Полезность: 0

Меценат Меценат

Цитата(ops244 @ 19.11.2014, 2:45) *
мой сервак на мониторингах пишет, что в Бельгии, хотя в Раше стоит
82.146.33.118:27015
мб меня нае**вают?
хотя пинг хороший



IP 82.146.33.118
Хост: ops244.blogspot.ru
Город: Иркутск
Страна: Russian Federation
IP диапазон: 82.146.32.0 - 82.146.39.255
Название провайдера: CLOUD DC network
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 19.11.2014, 11:40
Сообщение #14


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

am1go
большинство мониторингов аля ucoz используют устаревшею базу GeoIp
устаревшею на несколько лет или даже десяток.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 19.11.2014, 23:24
Сообщение #15


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
ETO_BYLO_LETOM, согласен, я тут немного не прав :)

Legenda
Цитата
база на 10 лет устаревшая?)))
хоть версию и дату выпуска базы напиши

база скачана в виде mysql таблиц в конце 2011 под сайт с прогнозом погоды, который я на тот момент разрабатывал, и была свежая. Более новых выпусков я не видел, таскаю ее с одного сайта на другой. Конечно, IPv6 никто не отменял, но пока острой необходимости в этом нет.

Несмотря на
Цитата
sv_region has been removed from the HLDS

клиент все еще отправляет это поле на мастерсервер, и никто не запрещает его обрабатывать.
Цитата
фильтрация, если она и есть - работает только на клиенте игры, а не на МС

вот как раз геолокация на клиенте никогда не фильтровалась и технически не реализована. Она есть только если МС обрабатывает поле и отдает часть списка.

Что касается ошибок, у меня у самого был IP из ДЦ в Украине, но бился ВЕЗДЕ как США. Не нужно надеяться на автоматическое определение, тем более что в большинстве движков мониторингов страна выбирается пользователем при добавлении своего сервера. Можно брать это значение, особенно если оно совпадает с определннным автоматически чтобы избежать мошенничества.

Цитата
раздавать различные списки серверов - достаточно просто...
определил ip адрес клиента, посмотрел кто такой - отдал ему свой список серверов...

Как раз не самый лучший вариант. Если на МС идет сотня запросов в секунду, определение страны будет сильно грузить CPU, причем если основано на файле - то еще и диск, а если на БД то mySQL сервер. Неприемлемо. Если учесть что от одного адреса идет минимум пара запросов (если мс оправляет флаг конца списка) и максимум несколько десятков (если флага нет) можно сделать кеширование определений стран, но это уже навороты.


По поводу реализовать и поделиться - я это по тихому реализовал (судя по дате изменения файла) еще в конце апреля, что касается серверной части (МС) то пару месяцев назад, до того параметр не анализировался и выдавались все сервера. Минус моей релизации был в немного ошибочной стратегии - я взял только десяток стран, которые имелись на тот момент в моем мониторинге, а нужно все таки делать общий стандарт и в список добавлять все страны, благо количество свободных id позволяет. Вообщем, что касается клиентской части, на днях выложу модифицированные файлы, по серверной (МС) ввиду того что МСов куча разных движков, оставляю на усмотрение владельцев.


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 20.11.2014, 2:56
Сообщение #16


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата
определение страны будет сильно грузить CPU, причем если основано на файле - то еще и диск, а если на БД то mySQL сервер.

с чего бы это?
ни чего не будет грузить при правильное реализации
забил данные в память и работай как хочешь, нагрузка минимальна....
хоть 35К запросов в секунду...


если конечно не быдло код

Цитата
база скачана в виде mysql таблиц в конце 2011 под сайт с прогнозом погоды
,
ну-у
каждую неделю обновление выходить от maxmind
https://www.maxmind.com/ru/geoip2-databases

есть еще одна фирма какая-та, которая занимается geoip
но название запамятовал...


собственно говоря те что в свободном доступе - это устаревшие geoip базы
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
ops244
сообщение 20.11.2014, 3:02
Сообщение #17
Стаж: 15 лет

Сообщений: 958
Благодарностей: 939
Полезность: 0

Цитата(am1go @ 19.11.2014, 11:39) *
IP 82.146.33.118
Хост: ops244.blogspot.ru
Город: Иркутск
Страна: Russian Federation
IP диапазон: 82.146.32.0 - 82.146.39.255
Название провайдера: CLOUD DC network

это, да, а на мониторингах всех Бельгия psych.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 20.11.2014, 20:56
Сообщение #18


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
Цитата
забил данные в память и работай как хочешь, нагрузка минимальна....

Ну конечно, если держать 100-мегабайтную базу в ОЗУ то грузить не будет, это на случай если на сервере слишком много свободной памяти.
Хотя все равно, 1 определение идет на 2 MySQL запроса, если таких сотня в секунду...

И основная идея была не в выдаче какого-то списка, а дать игроку возможность выбрать страну

Цитата
каждую неделю обновление выходить от maxmind

ок, постараюсь раздобыть обновленную, но постоянное обновление смысла не имеет - напряжно обновлять, и только незначительный процент изменений


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 20.11.2014, 21:03
Сообщение #19


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(Metal Messiah @ 20.11.2014, 20:56) *
100-мегабайтную базу в ОЗУ


откуда такой размер?
от силы пару мегабайт в упакованном виде
и 10 в распакованном
это если ip адрес и страну

тем более можно сразу бинарник использовать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 20.11.2014, 21:48
Сообщение #20


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
Там по IP определяется диапазон, за которым закреплен город, а по городу страна. Конечно, можно брать упрощенную базу...


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: