hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.08.07. 04:48



Jelenlévő felhasználók

Jelenleg 377 felhasználó van jelen :: 2 regisztrált, 0 rejtett és 375 vendég

A legtöbb felhasználó (2883 fő) 2025.07.30. 16:00-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot], Google [Bot]az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása Hozzászólás a témához  [11 hozzászólás ]  OldalElőző12
Szerző Üzenet
 Hozzászólás témája: Re: Trollok, Hackek
HozzászólásElküldve:2015.05.04. 19:02 
Offline
Tiszteletbeli
Avatar

Csatlakozott:2014.09.08. 22:21
Hozzászólások:3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
Dproto nem segít a fakeplayereken :)
Egyenlőre vagy cvar-t kérdezel le és úgy véded ki,de az is kijátszható...
Vagy bannolsz,ha 2-3nál több ember jön 1 IP-ről.

SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. #include <amxmodx>
  3.  
  4. #define PLUGIN "BanIP Fakes"
  5. #define VERSION "0.2"
  6. #define AUTHOR "Safety1st"
  7.  
  8. /*---------------EDIT ME------------------*/
  9. #define MAX_SAME_IP 3 // how many players allowed with the same IP address
  10. #define BAN_DURATION 30
  11. new gszKickMsg[] = "Tarkarongy"
  12.  
  13. #define MAX_PLAYERS 32
  14. #define WHITELIST_SIZE 4 // EXACTLY as rows quantity below; uncomment to enable whitelist
  15.  
  16. #if defined WHITELIST_SIZE
  17. new const gszWhiteList[WHITELIST_SIZE][] = {
  18. "127.0.0.1/8", // loopback interface (usually assigned IP is 127.0.0.1)
  19. "192.168.0.0/24", // 192.168.0.0/24 subnet, IPs range 192.168.0.0 ... 192.168.0.255
  20. "10.3.3.2/24", // 10.3.3.0/24 subnet, we could use any of its IPs here
  21. "141.101.120.244" // c-s.net.ua IP
  22. }
  23. #endif
  24. /*----------------------------------------*/
  25.  
  26. #define DEBUG // uncomment to enable some messages
  27.  
  28. new gszPlayerIP[MAX_PLAYERS + 1][16]
  29. new Trie:gtPlayerIPs
  30.  
  31. #if defined WHITELIST_SIZE
  32. enum _:WhitelistData {
  33. NET_IP,
  34. NET_MASK
  35. }
  36. new Array:gaWhitelist
  37. #endif
  38.  
  39. #define FIRST_PLAYER 1
  40. #define SINGLE_PLAYER 1
  41.  
  42. public plugin_init() {
  43. register_plugin( PLUGIN, VERSION, AUTHOR )
  44. register_cvar( "banipfakes_version", VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED )
  45.  
  46. gtPlayerIPs = TrieCreate()
  47.  
  48. #if defined WHITELIST_SIZE
  49. new iData[WhitelistData]
  50. gaWhitelist = ArrayCreate(WhitelistData)
  51.  
  52. for( new i; i < WHITELIST_SIZE; i++ ) {
  53. net_to_long( gszWhiteList[i], iData[NET_IP], iData[NET_MASK] )
  54. ArrayPushArray( gaWhitelist, iData )
  55. }
  56. #endif
  57. }
  58.  
  59. public client_putinserver(id) {
  60. new szPlayerIP[16]
  61. get_user_ip( id, szPlayerIP, charsmax(szPlayerIP), 1 /* without port */ )
  62.  
  63. #if defined WHITELIST_SIZE
  64. new iData[WhitelistData]
  65. for( new i; i < WHITELIST_SIZE; i++ ) {
  66. ArrayGetArray( gaWhitelist, i, iData )
  67. if( iData[NET_IP] == ip_to_long(szPlayerIP) & iData[NET_MASK] ) {
  68. #if defined DEBUG
  69. server_print( "White IP detected: id %d, IP %s", id, szPlayerIP )
  70. #endif
  71. return
  72. }
  73. }
  74. #endif
  75.  
  76. new iQuantity = FIRST_PLAYER
  77. if( TrieGetCell( gtPlayerIPs, szPlayerIP, iQuantity ) ) {
  78. if( ++iQuantity > MAX_SAME_IP ) {
  79. server_cmd( "kick #%d %s; wait; addip %d %s", get_user_userid(id), gszKickMsg, BAN_DURATION, szPlayerIP )
  80. static szBanMsg[] = "IP %s bannolva %d percre"
  81. log_amx( szBanMsg, szPlayerIP, BAN_DURATION )
  82. }
  83. }
  84.  
  85. TrieSetCell( gtPlayerIPs, szPlayerIP, iQuantity )
  86. copy( gszPlayerIP[id], charsmax( gszPlayerIP[] ), szPlayerIP )
  87. }
  88.  
  89. public client_disconnect(id) {
  90. if( !gszPlayerIP[id][0] )
  91. // whitelisted player or not fully initialized one (it could happen nearly a map change)
  92. return
  93.  
  94. new iQuantity
  95. TrieGetCell( gtPlayerIPs, gszPlayerIP[id], iQuantity )
  96. if( iQuantity == SINGLE_PLAYER )
  97. TrieDeleteKey( gtPlayerIPs, gszPlayerIP[id] )
  98. else
  99. TrieSetCell( gtPlayerIPs, gszPlayerIP[id], --iQuantity )
  100.  
  101. gszPlayerIP[id][0] = EOS
  102. }
  103.  
  104. /*-- Modified and simplified 'IP converter stocks' by Zetex --*/
  105.  
  106. // Gets net and mask as LONG from subnet.
  107. stock net_to_long( net_string[], &net, &mask ) {
  108. new i, ip[16]
  109.  
  110. i = copyc( ip, charsmax(ip), net_string, '/' )
  111. mask = i ? cidr_to_long( net_string[i + 1] ) : 0xFFFFFFFF /* mask /32, IP itself */
  112.  
  113. net = ip_to_long(ip) & mask
  114. }
  115.  
  116. // Converts mask to LONG. Returns unsigned long.
  117. stock cidr_to_long( mask_string[] ) {
  118. new mask = str_to_num(mask_string)
  119. new result = (1 << 31) >> (mask - 1)
  120.  
  121. return result
  122. }
  123.  
  124. // Converts IP to LONG. Returns unsigned long.
  125. stock ip_to_long( ip_string[] ) {
  126. new right[16], part[4], octet, ip = 0
  127. strtok( ip_string, part, 3, right, 15, '.' )
  128.  
  129. for( new i = 0; i < 4; i++ ) {
  130. octet = str_to_num(part)
  131.  
  132. ip += octet
  133.  
  134. if( i == 3 )
  135. break
  136.  
  137. strtok( right, part, 3, right, 15, '.' )
  138. ip = ip << 8
  139. }
  140.  
  141. return ip
  142. }
  143.  

_________________
GitHub - mforce


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése: Rendezés 
Új téma nyitása Hozzászólás a témához  [11 hozzászólás ]  OldalElőző12


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 4 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole