zBL4CK_

Anti-Proxy.inc

Jul 15th, 2021 (edited)
709
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.99 KB | None | 0 0
  1. /*
  2.     Name: Anti-Proxy
  3.     File (default): ProxyDetector.inc
  4.     Version: 2.0
  5.     Author: Gnikllort
  6.     Rewritten by: Xeon
  7.  
  8.     Functions:
  9.  
  10.         - bool:IsPlayerUsingProxy(playerid)
  11.         - ProxyDetectKick(bool:toggle)
  12.  
  13.     Callback:
  14.  
  15.         - OnPlayerProxyCheck(playerid, playerip[], bool:proxy)
  16. */
  17.  
  18. #if defined _included_proxydetector
  19.     #endinput
  20. #endif
  21.  
  22. #define _included_proxydetector
  23.  
  24. #include <a_http>
  25.  
  26. static
  27.  
  28.     ProxyAutoKick = false,
  29.     bool:IsUsingProxy[MAX_PLAYERS char] = {false, ...}
  30. ;
  31.  
  32. stock IsPlayerUsingProxy(playerid) return IsUsingProxy{playerid};
  33.  
  34. public OnGameModeInit()
  35. {
  36.     print("*Anti Proxy v2.0 by Gnikllort, Rewritten by Xeon Loaded.");
  37.  
  38.     #if defined HTTP_OnGameModeInit
  39.          return HTTP_OnGameModeInit();
  40.     #else
  41.         return 1;
  42.     #endif
  43.  
  44. }
  45. #if defined _ALS_OnGameModeInit
  46.     #undef OnGameModeInit
  47. #else
  48.     #define _ALS_OnGameModeInit
  49. #endif
  50. #define OnGameModeInit HTTP_OnGameModeInit
  51. #if defined HTTP_OnGameModeInit
  52.     forward HTTP_OnGameModeInit();
  53. #endif
  54.  
  55. public OnPlayerConnect(playerid)
  56. {
  57.     IsUsingProxy{playerid} = false;
  58.  
  59.     new ip[62];
  60.     GetPlayerIp(playerid, ip, sizeof(ip));
  61.     if(strcmp(ip, "127.0.0.1", true) == 0) return 1;
  62.  
  63.     format(ip, sizeof(ip), "proxy.mind-media.com/block/proxycheck.php?ip=%s", ip);
  64.     HTTP(playerid, HTTP_GET, ip, "", "HTTP_OnPlayerProxyCheck");
  65.  
  66.     #if defined HTTP_OnPlayerConnect
  67.          return HTTP_OnPlayerConnect(playerid);
  68.     #else
  69.         return 1;
  70.     #endif
  71.  
  72. }
  73. #if defined _ALS_OnPlayerConnect
  74.     #undef OnPlayerConnect
  75. #else
  76.     #define _ALS_OnPlayerConnect
  77. #endif
  78. #define OnPlayerConnect HTTP_OnPlayerConnect
  79. #if defined HTTP_OnPlayerConnect
  80.     forward HTTP_OnPlayerConnect(playerid);
  81. #endif
  82.  
  83. forward HTTP_OnPlayerProxyCheck(playerid, response_code, data[]);
  84. public HTTP_OnPlayerProxyCheck(playerid, response_code, data[])
  85. {
  86.     if(response_code == 200)
  87.     {
  88.         switch(data[0])
  89.         {
  90.             case 'Y': return CallRemoteFunction("OnPlayerProxyCheck", "ii", playerid, true);
  91.             case 'N': return CallRemoteFunction("OnPlayerProxyCheck", "ii", playerid, false);
  92.             case 'X': return printf("(Proxy Detector): invalid ip format.");
  93.             default: return printf("The request failed! The response code was: %d", response_code);
  94.         }
  95.     }
  96.     return 1;
  97. }
  98.  
  99. forward OnPlayerProxyCheck(playerid, bool:proxy);
  100. public OnPlayerProxyCheck(playerid, bool:proxy)
  101. {
  102.     if(proxy)
  103.     {
  104.         IsUsingProxy{playerid} = true;
  105.         if(ProxyAutoKick)
  106.         {
  107.             ShowPlayerDialog(playerid, 10, DIALOG_STYLE_MSGBOX, "{FF0000}Anti-VPN/Proxy", "Detectamos em seu endereço de ip o uso de vpn/proxy. Por favor conecte-se em seu endereço de ip original!", "Ok", "");
  108.             SetTimerEx("HTTP_DelayedKick", 1000, false, "i", playerid);
  109.         }
  110.     }
  111.     return 1;
  112. }
  113.  
  114. forward HTTP_DelayedKick(playerid);
  115. public HTTP_DelayedKick(playerid)
  116. {
  117.     Kick(playerid);
  118.     return 1;
  119. }
  120.  
  121. stock ProxyDetectKick(bool:toggle)
  122. {
  123.     if(toggle == ProxyAutoKick) return 1;
  124.     ProxyAutoKick = toggle;
  125.     printf("[ ANTI VPN/PROXY ] VPN/PROXY FOI DETECTADA COMO: %s.", ((toggle) ? ("on") : ("off")));
  126.     return 1;
  127. }
Add Comment
Please, Sign In to add comment