KickBan 

Written by: a_lesser_talent    email: ggargett@attbi.com
Date: 09/30/2002
 
This server-side tool kicks and bans clients by I.P. address or name by adding 
banning commands to Unreal.

Banned IPs and their names are stored in KickBan.ini in the BannedIPs and BannedNames
lists.  The 'kickban' command will enter the client IP address and name into the 
KickBan.ini lists and kick the client.  You can enter IP addresses/names manually 
into KickBan.ini if you wish by using the in-game 'ban' command or editing 
KickBan.ini directly.

You can ban any portion of an IP address. If you wish to ban a subnet simply 
enter the first part of an IP address into a slot in KickBan.ini. 
For example, this KickBan.ini entry, BannedIPs[1]=156.137, will not allow
any client from the 156.137 subnet to play on the server.

Banned names or name parts are stored in KickBan.ini in the BanName list.  Use 
the in-game 'banname' command to populate this list.  You can add names by editing
KickBan.ini directly.  Banning by name is case-insensitive.  An entry of 'less' will
ban any player whose name contains 'less', 'LESS', 'Less', etc.

You can also have KickBan log the IP address and name of up to 1000 
clients in KickBan.ini.  Name, IP Address and Computer Name (future) are
stored.  See "iplog" command.




INSTALLATION:  

Stop the server

Put kickban.ini and kickban.u into your unreal/system directory

Add the line, ServerActors=KickBan.KickBan, to the [Engine.GameEngine]
section of unreal.ini

Restart the server

NOTE - All options are turned OFF when you install KickBan.  Be sure to turn on
the functions you want to use by using the appropriate in-game command below.



USAGE: 

In the Unreal console type: admin set kickban cmd <command> <parameters>



COMMANDS:

 ids                            Display client information.  Most useful for 
                                  getting client IDs for other KickBan
                                  commands requiring an ID.

 kickid <id>                    Kick a client by id

 kickban <id>                   Kick and ban a client by id      

 ban <IP address> <name>        Add an IP address & name to the banned list

 unban <slot>                   Remove an IP address from the banned list

 ipscan <on|off>                Turn on/off IP address checking routine

 iplog <on|off|clear>           Turn on/off IP address logging routine. 'clear'
                                  erases stored IP addresses in KickBan.ini

 noplayer <on|off>              If "on" player names starting with "Player" are
                                  not allowed

 tickrate <#>                   Number of seconds between when KickBan processes a 
                                  command, checks for banned IP addresses and logs IP
                                  addresses. 3 is a good number

 status                         Report KickBan properties

 forcescan                      Force a scan of client IP addresses for banned
                                  addresses. Normally a check is performed
                                  when the client count changes.  This will
                                  force a scan even if ipscan is OFF

 aka <id>                       Searches the IP Address Log for last 5 instances
                                  of a player's IP Address and displays
                                  the other names the player has used 

 banname <name|name part>       Ban names.  Entry can be a whole name or a name 
                                  part you do not want to allow.  Name banning 
                                  is case-insensitive.

 unbanname <slot>               Remove a name (part) from the banned list.
                                  Use status command to get the slot #.

 namescan <on|off>              Turn on/off name banning.

 help                           Get command list                   

******** CREDIT WHERE CREDIT IS DUE ********************
This class is basically a stripped down version of ServerDog by }TCP{Wolf with
kickban code added.  The ServerDog ids and kickid commands are here for 
convenience.  Thanks to }TCP{Wolf for ServerDog.  If you don't have it, 
get it!  www.tcp-clan.nl


REVISION HISTORY:

V1.00   09/30/2002    Released

V1.50	10/28/2002    Added 'noplayer' command to not allow names starting with 
                        'Player' to be clients.
                      Added the bScanning switch so that KickBan will only perform
                        one scanning cycle at a time.  This will reduce CPU load.
                      Added 'iplog' command for automated IP address/name capture.
                      Added 'aka' command.

V1.51	11/16/2002    Changed all AllActor(PRI..) loops to Level.Pawnlist loops.
                        This is supposed to be more efficient.
                      Instead of using Tick() to do processing KickBan now uses
                        Timer(). This should reduce strain on the computer and
                        game engine. The tickrate parameter now refers to the 
                        number of seconds between KickBan processing cycles.
                      aka command only reports last 5 names.
                      * Thanks to Joss for coding suggestions! *

V1.6	12/28/2002    Added name or name part banning.  New banname, unbanname 
                        and namescan commands.





