Skip to content

Bans & Restrictions

Channel operators can ban users by hostmask using the +b mode:

MODE #channel +b *!*@bad.host.com
MODE #channel +b SpamBot!*@*
MODE #channel +b *!badident@*

See Channel List Modes for full ban documentation.

When a ban is set, the mask is normalized:

  • Incomplete masks are expanded to full nick!ident@host format
  • For example, *@bad.host.com is normalized to *!*@bad.host.com

By default, each channel can have up to 100 ban entries (configurable via max_list_entries: %{"b" => 100}).

Ban exceptions allow specific users to bypass bans:

MODE #channel +e TrustedUser!*@*

If a user matches both a ban (+b) and an exception (+e), they can join (exception wins).

ModeRestriction
+iInvite only — requires invite or +I exception
+kKey — requires correct channel password
+lLimit — channel at capacity
+RRegistered only — must be identified (+r)
+OOper only — must be an IRC operator
+zSecure only — must be on TLS (+Z)
+jJoin throttle — rate limited

Users can enable Caller ID to only receive messages from trusted users:

MODE yournick +g
ACCEPT +TrustedFriend

See User Modes — +g.

Users can block messages from unregistered users:

MODE yournick +R

Users can silence specific hostmasks (messages are silently dropped):

SILENCE +*!*@spammer.example.com

See SILENCE command.

Channel operators can remove users from channels:

KICK #channel BadUser :Violated channel rules

IRC operators can:

  • KILL — forcefully disconnect a user from the entire server:
    KILL spambot :Automated spam

Connection-level restrictions apply before users even complete registration:

  • max_connections_per_ip — max simultaneous connections from one IP
  • Connection rate throttle — token bucket per IP
  • IP blocking after repeated violations

See Rate Limiting for configuration.