| Tip of the day: Log files can use JSON logging. You can also send the JSON data to IRCOps on IRC. The JSON is machine readable and contains lots of details about every log event. |
JSON-RPC:Client Object
Jump to navigation
Jump to search
This can be a user, a server or a freshly accepted connection that is still in the handshake and we don't know yet what it will be.
| Detail level | Variable | Description | Example value |
|---|---|---|---|
| 0+ | name | The name of the client (nick name, server name, ..) | Syzop
|
| 0+ | id | The unique client ID | 001F9RV02
|
| 1+ | hostname | Resolved hostname (or IP) | xyz.example.org
|
| 1+ | ip | IP address of the user (empty for services) | 198.51.100.1
|
| 1+ | details | Detailed description of the client. The output depends on the type of client and what information we have. |
nick!user@host
|
| 1+ | geoip | GeoIP information regarding the IP address of the user (not always available) | (see next) |
| 1+ | geoip.country_code | The ISO 3166-1 alpha-2 country code | NL
|
| 1+ | geoip.asn | The AS (Autonomous System) number that the user is connecting from | 16276
|
| 1+ | geoip.asname | The AS (Autonomous System) name that the user is connecting from | OVH SAS
|
| 2+ | server_port | Server TCP port (unrealircd side) | 6697
|
| 2+ | client_port | Client TCP port (client side) | 37030
|
| 2+ | connected_since | Date/time when the client connected (only available for local clients) | 2022-05-23T11:02:06.000Z
|
| 2+ | idle_since | Last time the client said anything in PM or channel (only available for local clients) | 2022-05-23T11:02:06.000Z
|
| 2+ | tls | If the client is using SSL/TLS then this contains a tls object which has two members | (see next) |
| 2+ | tls.cipher | The TLS cipher negotiated with the client | TLSv1.3-TLS_CHACHA20_POLY1305_SHA256
|
| 2+ | tls.certfp | The client Certificate fingerprint (if any) | aafe66a7d808e1fca077805c54b1274a92d30c3023e35ec130f358d238218296
|
| 2+ | user | If the client is a user (a person) then additional information is available in this object. | See client.user object |
| 2+ | server | If the client is a server then additional information is available in this object. | See client.server object |
| 5+ | flood | Flood information for a user (if any limits were hit) | See Flood Object |
See also below for the user and server objects.
client.user object
If the client is a user then there is a user object within the client object:
| Detail level | Variable | Description | Example value |
|---|---|---|---|
| 2+ | user.username | The user name / ident | ~xyz
|
| 2+ | user.realname | The real name / GECOS | IRC User
|
| 2+ | user.vhost | If the user is +x or +t this contains the vhost/cloakedhost
|
oper/netadmin.test.net
|
| 2+ | user.cloakedhost | The calculated cloaked host, even if the user is not +x
|
Mask-8608861.example.net
|
| 2+ | user.servername | The server to which the user is connected | irc.example.net
|
| 2+ | user.account | The account name, if the user is logged in to Services. | SomeAccount
|
| 2+ | user.reputation | The reputation score. | 10000
|
| 2+ | user.security-groups | The security groups that the user is in. | ["known-users"]
|
| 2+ | user.away_reason | If the user is away, this field is present and shows the AWAY reason. | "On the phone"
|
| 2+ | user.away_since | If the user is away, this shows since when. | 2025-09-17T12:50:00.000Z
|
| 2+ | user.modes | The user modes of the user. | "iwx"
|
| 2+ | user.snomasks | The snomasks of the user, if they are IRCOp. | "bBcdfkqsSoO"
|
| 2+ | user.operlogin | The name of the oper { } block, if they are IRCOp. | "Bob"
|
| 2+ | user.operclass | The oper::operclass, if they are IRCOp. | "netadmin-with-override"
|
| 3 | user.channels | The channels the user is in. Minimized and capped at 384 bytes total length. |
["#a","#b","#c"]
|
| 4 | user.channels | The channels the user is in with the level | [{"name": "#a", "level": "o"}, {"name": "#b", "level": "o"}, {"name": "#c", "level": "o"}]
|
client.server object
If the client is a server then there is a server object within the client object:
| Detail level | Description | Example value | |
|---|---|---|---|
| 2+ | server.info | The server description | Primary IRC server of example.net
|
| 2+ | server.num_users | Number of currently connected users | 123
|
| 2+ | server.boot_time | Date/time the server was started | 2022-05-23T11:02:06.000Z
|
| 2+ | server.synced | Set to 1 if the server is synced, 0 if the server is currently linking in and syncing users/channels/etc. | 1
|
| 2+ | server.features.software | Server software version in use | UnrealIRCd 6.0.0
|
| 2+ | server.features.protocol | UnrealIRCd protocol version | 6000
|
| 2+ | server.features.usermodes | User modes supported by this server | abcd
|
| 2+ | server.features.chanmodes | Channel modes supported by this server. This is an array of 4 strings, the same format as IRC numeric 005 CHANMODES=. |
['abc','def','ghi','jkl']
|
| 2+ | server.features.nick_character_sets | Nick Character Sets supported by this server. Comma separated string. |
|