Advertisement
Guest User

Atrox IP to Country

a guest
Feb 5th, 2011
360
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.98 KB | None | 0 0
  1. /*
  2.     IP to Country von Tobias Hübner steht unter
  3.     einer Creative Commons Namensnennung-Nicht-kommerziell-Weitergabe
  4.     unter gleichen Bedingungen 3.0 Unported Lizenz.
  5.     http://creativecommons.org/licenses/by-nc-sa/3.0/
  6.  
  7.     http://www.multi-rl.de/
  8. */
  9.  
  10. #include <a_samp>
  11. #include <a_http>
  12.  
  13. forward HttpResponse(index, response_code, data[]);
  14. forward split(const strsrc[], strdest[][], delimiter);
  15.  
  16. public OnFilterScriptInit( )
  17. {
  18.     printf( "IP to Country von Atrox geladen" );
  19. }
  20.  
  21. public OnFilterScriptExit( )
  22. {
  23.     printf( "IP to Country von Atrox unloaded." );
  24. }
  25.  
  26. public OnPlayerConnect(playerid)
  27. {
  28.     if(IsPlayerNPC(playerid)) return 1;// No NPCs
  29.     new IPAdress[16], URL[50];
  30.  
  31.     GetPlayerIp(playerid, IPAdress, sizeof(IPAdress));
  32.  
  33.     format(URL, sizeof(URL), "multi-rl.de/ip.php?ip=%s", IPAdress);
  34.    
  35.     HTTP(playerid, HTTP_GET, URL, "", "HttpResponse" );
  36.     return 1;
  37. }
  38. public HttpResponse(index, response_code, data[])
  39. {
  40.     if(response_code != 200)
  41.          return printf("Atrox IP to Country: Fehler beim Verbinden! Errorcode: %d", response_code);
  42.  
  43.     new data2[60], CountryName[50], CountryCode[5], array[2][50];
  44.    
  45.     format(data2, sizeof(data2), "%s", data);
  46.     split(data2, array, ',');
  47.     format(CountryCode, sizeof(CountryCode), "%s", array[0]);
  48.     format(CountryName, sizeof(CountryName), "%s", array[1]);
  49.    
  50.     //Do something, for example:
  51.     if(strcmp(CountryCode, "DE") && strcmp(CountryCode, "AT") && strcmp(CountryCode, "CH") && /*IP like 'localhost'*/strcmp(CountryCode, "RD"))
  52.     {
  53.         SendClientMessage(index, 0xFFFFFFFF, "Wir erlauben nur deutsche Verbindungen!");
  54.         Kick(index);
  55.     }
  56.     return 1;
  57. }
  58.  
  59. public split(const strsrc[], strdest[][], delimiter)
  60. {
  61.     new i, li;
  62.     new aNum;
  63.     new len;
  64.     while(i <= strlen(strsrc))
  65.     {
  66.         if(strsrc[i]==delimiter || i==strlen(strsrc))
  67.         {
  68.             len = strmid(strdest[aNum], strsrc, li, i, 128);
  69.             strdest[aNum][len] = 0;
  70.             li = i+1;
  71.             aNum++;
  72.         }
  73.         i++;
  74.     }
  75.     return 1;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement