Получить IP-адрес сервера через плагин

MrFallen

Участник
Сообщения
31
Реакции
3
Добрый день, помогите пожалуйста, как можно получить внешний IP-адрес сервера через плагин. Желательно простой и элегантный способ :)
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #2
Самый простой и более правильный путь получить внешний IP-адрес - взять его у Стима. Через SteamWorks например.

Если точность не важна, можно сделать так, как я сделал у себя в UAS:
UAS_Core.sp:
int UTIL_GetServerPort()
{
    static ConVar hostport = null;
    if (hostport == null)
    {
        hostport = FindConVar("hostport");
    }

    return hostport.IntValue;
}

void UTIL_GetServerAddress(char[] szBuffer, int iBufferSize)
{
    static ConVar hostip = null;
    if (hostip == null)
    {
        hostip = FindConVar("hostip");
    }

    int iIp = hostip.IntValue;
    FormatEx(
        szBuffer, iBufferSize, "%d.%d.%d.%d",
        (iIp >> 24)     & 0xFF,
        (iIp >> 16)     & 0xFF,
        (iIp >> 8 )     & 0xFF,
        (iIp      )     & 0xFF
    );
}
 

MrFallen

Участник
Сообщения
31
Реакции
3
@Kruzya, я совсем новичок в плагинах, а чтобы SteamWorks заработал нужно просто include сделать "SteamWorks.inc" в начале плагина?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #4
C-подобный:
#include <SteamWorks>
И закинуть на сервак само расширение.
Но, как правило, оно уже есть почти на всех CS:GO серверах по некоторым причинам.
 
Сверху Снизу