求生之路吧 关注:546,999贴子:7,416,480
  • 8回复贴,共1

如何求生之路服务器屏蔽韩国人ip

只看楼主收藏回复



IP属地:江苏来自Android客户端1楼2023-08-25 08:19回复
    会写插件,导入最新的🇰🇷IP数据,在玩家加入时检测IP,如果不是🇰🇷IP,则放行加入,如果是则拦截


    IP属地:海南来自iPhone客户端2楼2023-08-25 08:38
    回复
      #pragma semicolon 1
      #pragma newdecls required
      #include <sourcemod>
      #include <geoip>
      #define LOGFILE "addons/sourcemod/logs/block_connect.log"
      #define LOGMSG "SteamID: %s, 国家(地区): %s, IP地址: %s, 昵称: %s, 原因: %s"
      ConVar g_hBlockCountries, g_hLogging;
      int g_iLogging;
      char g_sBlockCountries[256];
      public void OnPluginStart()
      {
      // 初始化配置
      InitConVar();
      // 生成配置文件
      AutoExecConfig(true, "block_connect");
      }
      public void OnConfigsExecuted()
      {
      GetCvarValue();
      }
      void InitConVar()
      {
      g_hBlockCountries = CreateConVar("bc_block_country_code", "KR", "禁止国家(地区)代码(全大写, 用空格隔开)");
      g_hLogging = CreateConVar("bc_logging", "1", "是否记录日志", _, true, 0.0, true, 1.0);
      g_hBlockCountries.AddChangeHook(Hook_CvarChanged);
      g_hLogging.AddChangeHook(Hook_CvarChanged);
      }
      public void Hook_CvarChanged(ConVar convar, const char[] oldValue, const char[] newValue)
      {
      GetCvarValue();
      }
      void GetCvarValue()
      {
      g_hBlockCountries.GetString(g_sBlockCountries, sizeof(g_sBlockCountries));
      g_iLogging = g_hLogging.IntValue;
      }
      public bool OnClientConnect(int client, char[] rejectmsg, int maxlength)
      {
      // 跳过BOT
      if(IsFakeClient(client)) return true;
      char rejectReson[128], ccode[3], name[64], steamID[32], ip[32];
      // 获取IP地址
      GetClientIP(client, ip, sizeof(ip));
      // 获取国家(地区)代码
      GeoipCode2(ip, ccode);
      // 获取昵称
      FormatEx(name, sizeof(name), "%N", client);
      // 获取SteamID
      GetClientAuthId(client, AuthId_Steam2, steamID, sizeof(steamID), false);
      if(g_sBlockCountries[0] && StrContains(g_sBlockCountries, ccode, false) != -1)
      {
      FormatEx(rejectReson, sizeof(rejectReson), "IP所属的国家(地区)已禁连");
      // 记录日志
      if(g_iLogging) LogToFileEx(LOGFILE, LOGMSG, steamID, ccode, ip, name, rejectReson);
      // 拒绝原因
      strcopy(rejectmsg, maxlength, rejectReson);
      // 拦截连接
      return false;
      }
      return true;
      }


      星座王
      点亮12星座印记,去领取
      活动截止:2100-01-01
      去徽章馆》
      IP属地:海南来自iPhone客户端3楼2023-08-25 09:17
      回复
        3楼代码是从我的插件里简化出来的,原来的需要数据库,也没进行测试,只是编译通过了,你可以拿去试试


        星座王
        点亮12星座印记,去领取
        活动截止:2100-01-01
        去徽章馆》
        IP属地:海南来自iPhone客户端4楼2023-08-25 09:20
        回复
          插件检索的IP来源于addons\sourcemod\configs\geoip文件夹下的GeoLite2-City.mmdb,默认的是2019年,建议进行更新,新的下载地址:https://github.com/P3TERX/GeoLite.mmdb/releases


          星座王
          点亮12星座印记,去领取
          活动截止:2100-01-01
          去徽章馆》
          IP属地:海南来自iPhone客户端5楼2023-08-25 09:25
          收起回复
            ➕3


            IP属地:安徽来自Android客户端6楼2023-08-25 10:32
            回复
              韩国也搞rpg吗


              IP属地:广东来自Android客户端7楼2023-08-25 11:56
              回复
                UUZ棒棒~


                IP属地:贵州8楼2023-08-27 12:16
                回复