The Internal Address List

 

mIRC maintains an internal address list of all users who are currently on the same channels as you.

 

The internal address list is used by the /guser, /ruser, /ban, /ignore, and /dns commands to quickly find a user's address without resorting to a /userhost server lookup.

 

A user's address is added to the list either when they join the channel, send a message to a channel, or make a mode change.

 

A user's address is removed from the list when they are no longer on any of the channels which you are currently on.

 

The reason why only addresses for users on the same channels as you are stored is because this guarantees the integrity of the list. ie. that a specific nickname is associated with a specific address.

 

IAL Commands

 

/ial [on | off]

Turns IAL on or off. Note that this setting is not persistent across sessions and resets to on every time mIRC is run.

 

/ialfill #channel

Fills the IAL by sending /WHO #channel to the server and processing the WHO reply.

 

If the server supports WHOX, an extended /WHO #channel %acdfhlnrstu,T is sent to receive the account name, where T is a number that uniquely identifies the WHO request and is set to 995.

 

Note: If the IAL already contains all of the addresses for nicknames on a channel, it will not send a /WHO to the server. You can force the IAL to be refilled by using the -f switch, however note that, like all high bandwidth requests, this could cause the server to close your connection if you do it too often.

 

/ialclear [nick]

Clears the IAL, or if a nickname is specified, clears that nickname's IAL entry.

 

/ialmark -nrw <nick> [name] [text]

Adds marks, in the form of text, to the IAL entry for a nickname.

 

The -n switch sets the name of the mark. If -n is not used, the default name 'default' is used.

 

The -r switch removes the mark.

 

The -w switch is used with -rn to treat name as a wildcard.

 

IAL Identifiers

 

$ial

Returns $true or $false depending on whether the IAL is on or off.

 

$ial(nick/mask,N)

Returns the Nth address matching nick or mask in the Internal Address List.

 

Properties: nick, user, host, addr, mark, account, away, gecos, id

 

$ial(*!*@*.com,0)        returns the total number of addresses in the IAL matching *!*@*.com

$ial(*!*@*.com,3)        returns the 3rd address in the IAL matching *!*@*.com

$ial(*!*@*.com,4).nick        returns the nick of the 4th matching address ending in .com

$ial(*!*@*.com,4).user        returns the userid of the 4th matching address ending in .com

 

To scan each address in the IAL you can use $ial(*,N).

 

The N parameter is optional, defaults to 1 if not specified.

 

$ialchan(nick/mask,#,N)

Returns the Nth address on the specified channel matching nick or mask in the Internal Address List.

 

This works the same way as the $ial() identifier.

 

$ialmark(nick,N/name)

Returns the marks added by the /ialmark command.

 

Properties: name, mark