@00427a9e7b3c

Как быстро находить сервера в сети?

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

я прекрасно понимаю, что в когда ты создаешь сервер в контре информация о нем летит на сервера valve, и фактически клиент берет ip сервера с valve, но у меня нет центрального сервера куда скиталась-бы инфа о созданных серверах

Пока что, я вижу для себя только одно решение, это поочередно перебирать все ip 0.0.0.0 -> 255.255.255.255. и пытаться искать сервера среди них. К сожалению это достаточно долгий процесс. Даже простой перебор (без опроса самих серверов, занимает прилично времени порядка 30 минут).

Как можно ускорить этот процесс?
  • Вопрос задан
  • 287 просмотров
Пригласить эксперта
Ответы на вопрос 5
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Пока что, я вижу для себя только одно решение, это поочередно перебирать все ip 0.0.0.0 -> 255.255.255.255. и пытаться искать сервера среди них

И получить бан от провайдера.

но у меня нет центрального сервера куда скиталась-бы инфа о созданных серверах

Очевидно - где-то хранить список. Если не хочется тратить деньги на простейший сервер в облаке за условных 30 руб. в месяц - храните в текстовом документе на том же pastebin и тому подобных сервисах.
Ответ написан
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Встраивать список в игру. И обновлением его обновлять.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Компьютерные сети
software engineer
я прекрасно понимаю, что в когда ты создаешь сервер в контре информация о нем летит на сервера valve, и фактически клиент берет ip сервера с valve, но у меня нет центрального сервера куда скиталась-бы инфа о созданных серверах


Смотря какой версии контра. Есть полно локальных серверов CS 1.6, про которые валв ничего не знает. И если ты не знаешь IP и порт, ты этот сервер не найдешь.
Чтобы про сервер знать - его владелец должен его рекламировать. Писать объявления, слать тебе смс-ки, или возможно создать веб портал о CS, через несколько лет, когда он станет более-менее популярным, на нем можно сделать страничку со списком разных серверов CS, и сказать что все могут публиковать свои адреса тут.

Ну или сделать как Valve - встроить функционал в клиент, при запуске сервера он сообщает о себе в Valve и всем клиентам информация об этом сервере приходит с центрального сервера Valve.

А иначе никак.

P.S. идея просканировать все с 0.0.0.0 до 255.255.255.255 звучит немного смешно. Для начала забанят. Во-вторых займет немного больше, чем 30 минут.
Ответ написан
Комментировать
pindschik
@pindschik
ФЫВА ОЛДЖ
Создайте свой IRC канал и заставьте серверы на нем отмечаться каждые, например 30 минут.
Тогда задача клиента - получить историю чата за 30 минут.
Ответ написан
Комментировать
@rPman
Пример попытки просканировать весь интернет лет десять назад, для этого потребовалось 10 месяцев и ботнет из 420 тысяч устройств.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы