Except ban block

The except ban block allows you to exempt users from KLINEs and other *LINES. This is useful when you want an ISP banned, but still want specific users to be able to connect. Also, IRCOps often add their own ip to except ban to make sure they are never accidentally banned.

There's a difference between how UnrealIRCd 4 and UnrealIRCd 5 process the except ban blocks so be sure to read the right section below!

UnrealIRCd 4
In UnrealIRCd 4 the except ban { } block only exempts from KLINE and ZLINE. You need to add an Except tkl block for the same user@host as well if you want to exempt from other ban types.

Syntax
except ban { mask ; };

The except::mask directive specifies the user@host mask of the client who will be allowed to connect.

Example
except ban { mask *@my.exempted.host.isp.com; };

UnrealIRCd 5
In UnrealIRCd 5 you can exempt hosts/IPs from nearly all possible bans in one block:

Syntax
except ban { mask ; type { .... }; /* this is optional */ };

The mask specifies the mask to be exempt from banning. It is recommended to use IP addresses in the mask if possible (eg: *@192.168.*) rather than hostnames (eg: *@*.someisp.xx). Although both are permitted, do note that if you use a hostname then the except ban { } will be ineffective against exempting from ZLINE and GZLINE for technical reasons (when bans and except ban { } blocks are processed no DNS lookup and no ident lookup has been done yet).

Valid types are:

If you do not specify any type, then the exception defaults to: kline + gline + zline + gzline + shun.

Example
except ban { mask *@192.168.*; mask *@192.0.2.5; };