Client-To-Client Protocol (CTCP) is an extension of the standard IRC protocol that allows IRC clients to send formatted requests directly to one another via standard private messages (PRIVMSG) wrapped in low-level ASCII characters.
While CTCP facilitates underlying actions like rendering text formatting (ACTION / /me) or negotiating direct peer connections, traditional automated queries can expose your local client metadata.
Common CTCP Requests and Privacy Risks
When another user or script queries your client using CTCP, your software automatically responds with system information:
VERSION: Returns the specific IRC client software you are running, along with underlying operating system details, architecture, or version numbers. This gives potential bad actors insight into your software stack.PING: Measures the direct latency (ping rate) between two clients by echoing back a timestamp. While useful for diagnostics, it can be abused to probe activity.TIME: Returns the local time and date settings of your machine or client environment.
Unrestricted CTCP querying can also be weaponized by malicious actors to launch CTCP floods—bombarding a client with automated requests to force an "Excess Flood" disconnection from the server.
How to Protect Yourself
You can mitigate CTCP exposure and block automated information gathering using network-level modes or client settings.
1. Enable User Mode +T (Network-Level Block)
Many modern IRC networks support user mode +T, which instructs the server to strip or block incoming CTCP requests before they ever reach your client.
- How to set it: Type the following command into your client window upon connecting:
Plaintext
(Note: User modes are session-based, so you can configure your client's auto-connect string to execute this command automatically upon logging in.)
2. Configure Per-Client Settings
If your network does not support user mode +T, or if you want granular local control, you can disable or filter CTCP responses directly inside your chat application:
- AdiIRC / mIRC: Use client options or script rules (such as
/ctcp *:*:*:halt) to intercept and silence outgoing CTCP replies. - HexChat / The Lounge / Irssi: Look through advanced settings or notification plugins to disable automatic responses to
VERSION,TIME, andPINGqueries from unknown users.