It's possible your channel at some point gets bothered by an annoying chatter who keeps coming back. In stead of kicking them every time, it usually is better to ban the person from your channel. This can be done in several ways.
Maybe it is useful to first explain which information is available to you for setting a ban that affects 1 or multiple persons. A ban basically can be set in 1 of the following 2 formats:
where the hostname and the IP address can be a 'real' address, but also a socalled VHost or a 'masked' host/IP.
IP and Hostname
By default Chat4All does not show the full hostnames or IP-addresses of other chatters, but a so-called 'masked' address. In a masked host the first part of the hostname gets replaced with "Chat4all-" followed by a hexadecimal number (for instance Chat4all-9DCCB19), or is the IP displayed in hexadecimal octals where the last octal is replaced with the text ".IP".
A user can also choose to request their own VHost; a virtual host that has no connection whatsoever with their real hostname or IP-address.
To offer a form of privacy towards the chatters, only IRC Server Operators can see the real IP-addresses and Hostnames of other users, unless the user decides themselves to disable their host-masking or VHost.
This all might sound very technical, but it is not really important for the banning process, because all the information you need can be obtained through the so-called "/whois nickname" command. This shows, amongst other things, the ident and the (masked/virtual) hostname or (masked) IP-address of the chatter with the nickname you supplied in the command.
A couple of examples of the fictive users "MissAnon", "Devilish_Angel" and WaterLover31:
MissAnon is ~Anon@1C238BB5.94BD3981.8EF3B903.IP * MissAnon is my name, Secrecy is my fame MissAnon on #lounge MissAnon using eu.chat4all.org Chat4All MissAnon has been idle 23mins 58secs, signed on Tue Apr 20 00:53:34 MissAnon End of /WHOIS list.
The ident of the user MissAnon is Anon (the ~ indicates the lack of an identd response) and the masked IP-address is 1C238BB5.94BD3981.8EF3B903.IP. It also shows the 'real name' or 'GECOS' the user set, in this case "MissAnon is my name, Secrecy is my fame". Your IRC client might format the response a bit differently, but the available information should be the same.
Devilish_Angel is quasselcor@Chat4all-1AB43129.hsf2.comcast.net * The hellfire is cold and the holywater burns! Devilish_Angel on @#heavenOrHellfire Devilish_Angel using us.chat4all.org Chat4All Devilish_Angel End of /WHOIS list.
The ident of Devilish_Angel is quasselcor (which probably indicates the user is using the IRC client 'QuasselCore'. Their masked hostname is Chat4all-1AB43129.hsf2.comcast.net and their 'real name'/'GECOS' is "The hellfire is cold and the holywater burns!"
WaterLover31 is email@example.com * Splash! WaterLover31 is a registered nick WaterLover31 on &#waterbase WaterLover31 using eu.chat4all.org Chat4All WaterLover31 has been idle 1hr 11mins 38secs, signed on Mon Apr 19 23:58:10 WaterLover31 End of /WHOIS list.
For this last user, going by the nickname WaterLover31, ident is w and the VHost is ter.is.amazing. Their 'real name'/'GECOS' is "Splash!".
A simple ban can be set via:
/mode #channelName +b firstname.lastname@example.org
This one can then be easily removed again with:
/mode #channelName -b email@example.com
An overview of all currently active bans in the channel can be requested with the following command:
/mode #channelName +b
Most clients offer graphical user interface options for this as well. The Windows IRC client mIRC for instance, show the current ban list by double clicking in the text buffer area of the channel. Here you can also remove individual bans. Kickbanning a user can usually also easily be achieved through context-menus that show up by right-clicking on the username of the user you want to ban.
The commands described here should however be available and working the same way in all IRC clients. Remember though to replace #channelName with the actual name of your own channel you want to ban the user from!
For instance, imagine you are an operator on the channel #deadbeats and an annoying chatter by the nickname SirBitchalot is bothering your channel.
His hostname is "Chat4all-C32E5E2E.aol.com" and the ident is set to "elma".
The chatter is using the Chat4All Java applet, so the 'real name'/'GECOS' of the user is set to "Chatwereld: http://www.chatwereld.com".
A /whois SirBitchalot will then probably look something like this:
SirBitchalot is elma@Chat4all-C42E1D3E.aol.com * Chatwereld: http://www.chatwereld.com SirBitchalot is a registered nick SirBitchalot on #lounge @#iLoveTrolling #deadbeats SirBitchalot using eu.chat4all.org Chat4All SirBitchalot End of /WHOIS list.
SirBitchalot is a registered nick
can be missing if the user hasn't register their nickname, or is currently not logged in through NickServ.
If you want to ban that person with exact that nickname, ident and hostname, you issue the following command:
/mode #deadbeats +b SirBitchalot!elma@Chat4all-C42E1D3E.aol.com
Then no-one can join the room anymore with that precise combination of nickname, ident and hostname. Usually this isn't really effective though, since the user only needs to change their nickname or ident.
If you want to ban everyone who uses the nickname SirBitchalot from your channel, you use:
/mode #deadbeats +b SirBitchalot!*@*
You can imagine that this ban isn't really effective either, because the user only needs to change their nickname to evade the ban.
The * (asterisk/star) symbols you can see in the above examples, are socalled wildcards, which means that the chat won't look at anything that is in that spot. It kinda means something like "anything is allowed on this spot".
In the above nickname example it for instance means it doesn't matter what the ident or the hostname of the user is. Every part and subpart of the "firstname.lastname@example.org" and "nickname!ident@1C238BB5.94BD3981.8EF3B903.IP" format can be replaced with a wildcard *.
You could for instance use the wildcards to disallow certain cussing nicknames, for instance:
/mode #deadbeats +b *ass*!*@*
This would mean that no-one with "ass" in their nickname is allowed to enter the room. So, "YouAreAnAss" can't get in, however, someone with the nickname "brass" or "assignment" wouldn't be allowed either. So, be careful that you don't set a too wide ban.
If you want to ban everyone who uses the ident elma, you type:
/mode #deadbeats +b *!elma@*
This ban isn't always very effective either, since the user only needs to edit their ident.
Also keep in mind that some users get an extra ~ (tilde-sign) in front of their ident, to indicate that they aren't running a so-called 'identd' service. This ~ also would need to be added to the ident ban, or replaced with a * wildcard.
Because some IRC clients also set the ident automatically, you could also be banning certain IRC clients from yoru channel. The use case for this is rather limited though. As an example you have for instance the IRC client "Quasselcore", which by default sets the ident to "quasselcor". You could ban this client by setting:
/mode #deadbeats +b *!quasselcor@* /mode #deadbeats +b *!~quasselcor@*
However, in reality there isn't really any reason to ban this client from your channel.
A far more effective ban is one on the hostname. A hostname in general isn't easy to change for the average user, since internet service providers usually link hostnames and IP-addresses for a longer time to a single internet connection.
If you want to ban everyone with the hostname Chat4all-C42E1D3E.aol.com, then the following ban should do the trick:
/mode #deadbeats +b *!*@Chat4all-C42E1D3E.aol.com
Unfortunately there are still providers that assign dynamic hosts/IP-addresses to users that change every time the person restarts their modem, or dials in again.
Is this the case with the chatter you want to ban and they get a slightly different IP or hostname every time, then you can choose to 'wildcard' the changing part, in other words, replace it with a *.
Be careful! This can ban a part of your legitimate chatters from your channel as well!
/mode #deadbeats +b *!*@*.aol.com
could for instance ban all AOL users from your channel.
Better could for instance be to combine this with an ident ban, like for instance everyone with an ident that starts with "elma" and have AOL.com as internet service provider:
/mode #deadbeats +b *!elma*@*.aol.com
or everyone with a nickname that has Bitch in it, and aol.com als provider:
/mode #deadbeats +b *bitch*!*@*.aol.com
So, if you want to ban someone with a specific IP or hostname from your channel, then you type:
/mode #channelName +b *!*@hostname.of.person
In the case that you have no other option but to set a ban on a wide range (such as the *!*@*.aol.com example above), the channel mode +e is available to allow someone to join even though there is a ban matching some part of their host. The hostnames used in this command are identical to how you use them with bans.
Note: There is currently no permanent way via services to maintain this list. When the last person leaves, this list, much like the ban list, will be cleared.
As an example, assume you have *!*@*.aol.com banned already. You have a legitimate chatter using the nick RegularJoe, using AOL as their ISP. You could allow this person in while still having AOL banned using this command:
/mode #channelName +e RegularJoe!*@*
This would allow anyone using the nick RegularJoe in, regardless if they use AOL or not.
If this person uses a constant ident, you could improve this by including the ident:
/mode #channelName +e RegularJoe!*thejoe@*
Removal of a ban exception also works like bans:
/mode #channelName -e RegularJoe!*@*
Note: regular bans (set with /mode #channel +b) disappear when the last user leaves the channel!
If you want to keep the bans even when the channel has been empty, then you can place so called 'akicks' (auto-kickbans) through ChanServ.
Your channel needs to be registered through ChanServ to be able to do this though! You can find detailed channel registration instructions on http://chat4all.net/eng_yourchatroom.html
Placing an AKick ban can be done with the same banmasks, which you enter in the following command:n:
/CHANSERV AKICK #channelName ADD email@example.com
So, looking back at our previous example, to permanently ban everyone connecting from Chat4all-C42E1D3E.aol.com from the channel #deadbeats, you use:
/CHANSERV AKICK #deadbeats ADD *!*@Chat4all-C42E1D3E.aol.com
Or, if you want to ban the IP-address (let's say that 192.168.2.1 is the user's IP-address) then that's possible as well with:
/CHANSERV AKICK #deadbeats ADD *!*@192.168.2.1
Or with a masked IP-address:
/CHANSERV AKICK #deadbeats ADD *!*@1C238BB5.94BD3981.8EF3B903.IP
If the person has a registered nickname, you can also place this on the AKick list:
/CHANSERV AKICK #deadbeats ADD SirBitchalot
To review you Akick list, you can utilize this command:
/CHANSERV AKICK #channelName VIEW
You can replace VIEW with LIST if you do not need to see who set each entry and when it was set.
If anyone enters the room then who has identified through NickServ for the nickname SirBitchalot, then they'll automatically get kickbanned. This can for instance be useful if the user has several nicknames grouped through NICKSERV GROUP and uses several different VHosts.
If your channel is registered, and you have a BotServ bot in your channel with the FANTASY option set to ON (which is set by default), then you can use the !kb command to kickban someone. The BotServ bot will then automatically place a ban on the hostname of the given person:
will place a ban on *!*@Chat4all-C42E1D3E.aol.com
You can also put this hostban on the AKick list by typing the !akick command
!akick add *!*@Chat4all-C42E1D3E.aol.com Bitch!
in your channel. This will place an akick on *!*@Chat4all-C42E1D3E.quicknet.nl with the ban message "Bitch!". Currently it unfortunately is only possible to give a single word as kick reason.