This command is used to remove a user or a group of users from Ravenchat and deny all reconnect attempts by the affected user(s) until the akill either expires or is manually removed. This is the preferred method of issuing global network bans, as this automatically provides an ID number which can quickly and easily be used to search the akills database and find exactly which akill one is looking for. Akills can be added, deleted, listed, viewed, and cleared with the various sub commands available. They will be described in further detail below.
This is used to add an akill to the system. This command takes 2 or 3 arguments, an optional expiry time, the mask to ban, and the reason for the ban. Like all IRC operator commands which ban users from portions of the network, the ban is in the form of [email protected], not [email protected] If an expiry time is not specified, then a default is loaded from the configuration file. Currently, this default is 30 days. Unlike many commands which request a reason, this one requires that a reason be provided. Since this command should only be used for terms of service violations, it is considered good practise to cite the particular provision(s) of the terms of service that the user(s) is/are violating.
Users should be banned by IP address only. This is because banning by host can fail if there is a DNS lookup failure for any reason. This would allow banned users to reconnect to the network. Additionally, some users have access to change their host names, however changing IP addresses (or IP address ranges in more serious cases) is usually a less trivial task. Lastly, the IP addresses to which host names resolve can be changed, which can result in users being banned by mistake.
Usually, you will want to ban all users regardless of ident. This can be done by using the wild card *, which basically means "Match 0 or more characters here." The exception is if the user is on a trusted IP address, in which case you will want to try banning their ident specifically first. To ban all users who are connecting from 192.168.1.1 for 10 days with the message "Repeated terms of service violations", you would use this command:
/msg OperServ akill add +10d *@192.168.1.1 Repeated terms of service violations.
Note that IP addresses can also include wild cards. This is usually useful for substituting the last octet (or sometimes last two octets) of an IPv4 address, or the last 4 octets of an IPv6 address. Additionally, you can use perl compatible regular expressions to issue your akill, however extreme care must be exercised in using this method.
To add an akill that does not expire, use +0 for the expiry argument.
This provides powerful tools for removing akills. Multiple akills can be removed at 1 time by specifying groups and/or ranges of numbers. They can also be removed one at a time by specifying the mask to be removed or the akill ID. If removing akills by list entry numbers, be sure to use the list or view commands first to ensure you have selected the right numbers.
This command accepts 1 argument, the target of the akill to delete. For instance, to remove akill entries 1, 4, 5, 6, 10, 11, 12, 18, and 20, you could use this command:
/msg OperServ akill dell 1,4-6,10-12,18,20
The list of numbers above can be replaced with the host mask to delete, any entry number ID individually, or the akill ID.
This provides a simplified list of all current akills. You can list specific akills by providing an entry number, host mask, or akill ID. Issuing this command without any arguments shows all akills currently in effect. Wild cards and perl compatible regular expressions can be used here. To list all akills against users whose IP address starts with 71, you can use this command:
/msg OperServ akill list *@71.*
This can be used to look up all akills against IPv6 addresses, like so:
/msg OperServ akill list *@*:*
For IPv4 addresses and host names (which should never be added anyway), replace : with . in the above command.
This command functions identically to the above mentioned list, but is more verbose in its output, displaying additional information such as who set the akill, when it was set, and when it expires. It accepts the same arguments in the same ways. See list for further details of how to use this command.
This command removes all akill entries from the list. This command should never be used unless there are severe problems with the list. Akills will normally expire themselves and operator intervention is normally not required or warranted in these cases.