Fast IP Ping

Fast IP Ping

Fabric
Fast IP Ping - 1

Вот готовая статья для игрового портала:

pinging

Прощаемся с лагами при подключении по IP

Знакомая ситуация: вводишь в серверный лист прямой IP-адрес вроде 192.168.2.10:25565, нажимаешь «Подключиться» — и зависаешь на несколько секунд. Виной всему обратный DNS-запрос, который игра делает для каждого такого адреса.

Этот мод решает проблему кардинально: он просто отключает reverse DNS lookup для серверов, чей адрес состоит только из IP. В итоге вместо того, чтобы ждать ответа от DNS-сервера, игра сразу использует введённый IP как доменное имя.

Как это работает

Внутри Minecraft при вызове java.net.InetAddress#getHostName(boolean) происходит следующее: если hostName равен null (а это как раз случай, когда адрес был получен как literal IP), система отправляет запрос к Name Service. Этот запрос может длиться от 1 до 5 секунд — особенно если у IP нет привязанного доменного имени, что для не-loopback адресов обычное дело.

// java.net.InetAddress#getHostName(boolean)
String getHostName(boolean check) {
    if (holder().getHostName() == null) {  // It will be null if InetAddress.getByName() received a literal IP
        holder().hostName = InetAddress.getHostFromNameService(this, check);  // <-- takes forever
    }
    return holder().getHostName();
}

Мод перехватывает этот момент и принудительно устанавливает домен в значение самого IP, минуя долгую проверку. Это даёт прирост скорости на 1–5 секунд в двух ключевых сценариях:

  • Пинг сервера в списке серверов
  • Подключение к серверу

Технические детали

Функция выдрана из опции yeetServerIpReversedDnsLookup мода TweakerMore.

Окружение

  • Работает только на стороне клиента
  • Поддерживает Fabric, Forge и NeoForge без дополнительных зависимостей

Все права на данный контент принадлежат его авторам. Мы не храним и не распространяем файлы — страница носит исключительно информационный характер. Оригинальный источник доступен по этой ссылке.

0
0
0

Комментарии (0)

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

Пока нет комментариев

Будьте первым!