Character Controller(Ban ip)

11/09/2012 11:23 Valroller#1
Hey Epvp

i found this somewhere so i wanted share it with you.

I saw some of members was asking about ban charactername by ip.

Therefor i did this simple tool to help you.

Very simple to use.


First lets use Capi query.

1st Step
PHP Code:
USE Log_DB 

CREATE TABLE _IPLogs 
(  

[
No.] int IDENTITY(1,1PRIMARY KEY,  
[
CharIDint,  
[
Charnamevarchar(max),  
[
IPvarchar(max),  
[
Datedatetime  
); 
2nd Step

PHP Code:
USE [Log_DB]  
GO  

SET ANSI_NULLS ON  
GO  
SET QUOTED_IDENTIFIER ON  
GO  


ALTER   procedure 
[dbo].[_AddLogChar]   
@
CharID        int,  
@
EventID        tinyint,  
@
Data1        int,  
@
Data2        int,  
@
strPos        varchar(64),  
@
Desc        varchar(128)  
as  

    IF(@
EventID OR @EventID 6)  
    
BEGIN  

    
declare @len_pos     int  
    
declare @len_desc    int  
    set 
@len_pos len(@strPos)  
    
set @len_desc len(@Desc)  
    if (@
len_pos and @len_desc 0)  
    
begin      
        insert _LogEventChar values
(@CharIDGetDate(), @EventID, @Data1, @Data2, @strPos, @Desc)     
     
end  
    
else if (@len_pos and @len_desc 0)  
    
begin       
        insert _LogEventChar 
(CharIDEventTimeEventIDData1Data2EventPosvalues(@CharIDGetDate(), @EventID, @Data1, @Data2, @strPos
     
end  
    
else if (@len_pos and @len_desc 0)  
    
begin       
        insert _LogEventChar 
(CharIDEventTimeEventIDData1Data2strDescvalues(@CharIDGetDate(), @EventID, @Data1, @Data2, @Desc
     
end  
    
else  
    
begin  
        insert _LogEventChar 
(CharIDEventTimeEventIDData1Data2values(@CharIDGetDate(), @EventID, @Data1, @Data2
     
end  
      
    
--For the new IPLog table  
    
Declare @DynIP varchar(max);  
    
exec @DynIP SRO_VT_ACCOUNT.dbo.split_ip @Data2  
    INSERT INTO _IPLogs 
(CharID,Charname,IP,[Date]) VALUES (@CharID, (SELECT CharName16 FROM SRO_VT_SHARD_INIT.dbo._Char WHERE CharID = @CharID),@DynIP,GETDATE()) 
     -- 
END  

    END 

3rd Step

PHP Code:
use [Log_DB
CREATE TABLE _BannedIPs 
[
No.] int PRIMARY KEY IDENTITY (1,1), 
[
IPvarchar(maxNOT NULL 
); 
4th Step

PHP Code:
USE [SRO_VT_ACCOUNT
GO 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

CREATE PROCEDURE 
[dbo].[_BannPlayerSP]          

@
CharName varchar(max), 
@
Reason varchar(max

as 
--------------------------------                            
DECLARE @
ChrID INT;             
DECLARE @
AccJID INT;            
--------------------------------- 

SET @ChrID=(SELECT CharID FROM SRO_VT_SHARD_INIT.dbo._Char WHERE CharName16=@CharName)
 
SET @AccJID=(SELECT UserJID FROM SRO_VT_SHARD_INIT.dbo._User WHERE CharID=@ChrID)
 
---------------------- 

DECLARE  
        @
ID VARCHAR(64) = (Select STRuserID FROM TB_User Where JID = @AccJID), 
        @
Begin DATETIME GETDATE()-1
        @
End DATETIME GETDATE()+3650 


INSERT 
[dbo].[_Punishment

[
UserJID], 
[
Type], 
[
Executor], 
[
Shard], 
[
CharName], 
[
CharInfo], 
[
PosInfo] , 
[
Guide], 
[
Description], 
[
RaiseTime], 
[
BlockStartTime], 
[
BlockEndTime], 
[
PunishTime], 
[
Status

VALUES  

@
AccJID
1
1
0
@
CharName
1
1
@
Reason
@
Reason
@
Begin
@
Begin
@
End
@
End
0); 
---------------------------------------------------------- 
DECLARE @
ReasonID INT 
SET 
@ReasonID 
(
Select SerialNo FROM _Punishment Where UserJID = @AccJID
---------------------------------------------------------- 
INSERT [dbo].[_BlockedUser

[
UserJID], 
[
UserID], 
[
Type], 
[
SerialNo], 
[
TimeBegin], 
[
TimeEnd]) 
VALUES 

@
AccJID
@
ID
1
@
ReasonID
@
Begin
@
End); 

----------------------------------------------------------------- 
SELECT StrUserID FROM TB_User WHERE JID = @AccJID 
----------------------------------------------------------------- 
Last Step

PHP Code:
USE [Log_DB]  
GO  

SET ANSI_NULLS ON  
GO  
SET QUOTED_IDENTIFIER ON  
GO  


ALTER   procedure 
[dbo].[_AddLogChar]   
@
CharID        int,  
@
EventID        tinyint,  
@
Data1        int,  
@
Data2        int,  
@
strPos        varchar(64),  
@
Desc        varchar(128)  
as  

    IF(@
EventID OR @EventID 6)  
    
BEGIN  

    
declare @len_pos     int  
    
declare @len_desc    int  
    set 
@len_pos len(@strPos)  
    
set @len_desc len(@Desc)  
    if (@
len_pos and @len_desc 0)  
    
begin      
        insert _LogEventChar values
(@CharIDGetDate(), @EventID, @Data1, @Data2, @strPos, @Desc)     
     
end  
    
else if (@len_pos and @len_desc 0)  
    
begin       
        insert _LogEventChar 
(CharIDEventTimeEventIDData1Data2EventPosvalues(@CharIDGetDate(), @EventID, @Data1, @Data2, @strPos
     
end  
    
else if (@len_pos and @len_desc 0)  
    
begin       
        insert _LogEventChar 
(CharIDEventTimeEventIDData1Data2strDescvalues(@CharIDGetDate(), @EventID, @Data1, @Data2, @Desc
     
end  
    
else  
    
begin  
        insert _LogEventChar 
(CharIDEventTimeEventIDData1Data2values(@CharIDGetDate(), @EventID, @Data1, @Data2
     
end  
      
    
--For the new IPLog table  
    
Declare @DynIP varchar(max);  
    
exec @DynIP SRO_VT_ACCOUNT.dbo.split_ip @Data2  
    INSERT INTO _IPLogs 
(CharID,Charname,IP,[Date]) VALUES (@CharID, (SELECT CharName16 FROM SRO_VT_SHARD_INIT.dbo._Char WHERE CharID = @CharID),@DynIP,GETDATE()) 
     -- 
END 
    
-- Banned IP stuff 
    
IF exists (SELECT IP FROM _BannedIPs WHERE IP like @DynIP
    
BEGIN 
    
Declare @Charname varchar(max) = (SELECT CharName16 FROM SRO_VT_SHARD_INIT.dbo._Char WHERE CharID = @CharID)
      
    
exec SRO_VT_ACCOUNT.dbo._BannPlayerSP @Charname,'usage of a banned IP' 
    
-- END banned IP stuff 
    END 

    END 
P.S: Change your database names if different.

Screen shot of the tool

[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]

Credits not for me.
11/28/2012 15:03 PortalDark#2
#approved
11/28/2012 15:28 CrazyGirL_ZSZC#3
ok thats good but ( 90% ) of the players don`t have static ip , so by restarting the router they will login again . any way to ban ppl with dynamic ip ? ( i think no but who knows )
11/28/2012 15:33 xlinh#4
KIS have virus
11/29/2012 22:01 intercsaki#5
Quote:
Originally Posted by Valroller View Post
Credits not for me.
Then for...? *simply-can't-understand-it-face*
12/01/2012 16:33 Crue*#6
Thank's Bro