mIRC
mIRC is a shareware Internet Relay Chat client for Windows, created in 1995 and developed by Khaled Mardam-Bey. This was originally its only use, but it has evolved into a highly configurable tool that can be used for many purposes due to its integrated scripting language. Other uses may include:
- IRC bot / channel management
- MP3 music player
- DCC (a peer-to-peer IP-based chat or file send), and IRC server
- Web page parser (usually for retrieving search results or headlines)
- Game platform (these games are called mIRC games)
mIRC is highly popular, having been downloaded nearly eight million times from CNET's download.com service as of August 2005. Nielsen Net Rankings also rated mIRC as among one of the top 10 most popular Internet applications in 2003. Its popularity may explain why many mIRC users mistakenly believe that the name of their client is also the name of the protocol it uses, thinking they are "connecting to a mIRC server" or "joining a mIRC channel".
It is currently unexplained what the "m" stands for in the name - Khaled's personal FAQ says "It quite possibly stands for 'moo', or perhaps even MU". [1]
Main features
- Advanced integrated event-based and command-based scripting language
- Ability to connect to multiple servers simultaneously
- CTCP support
- DCC file transfer and DCC chat support
- Protection against malicious file downloads
- DCC file server (fserve) that allows a user to browse a specified folder and download files
- ANSI-style and mIRC-style text decoration support
- Speech recognition and synthesis via 3rd party products
- SSL and firewall support
- Support for UTF-8 (For full support, "Multibyte editbox" must be enabled)
Common criticisms
- mIRC scripting allows troublemakers to dupe naïve users into running malicious code merely by typing things in the chat window (for example, entering lines beginning with //write $decode(). Since version 6.17 this is disabled by default, and various other commands considered dangerous can be locked in mIRC options.
- mIRC-style text decorations and colors are not part of the IRC standard, but because of the program's popularity, competing IRC clients have been forced to include them in their program, although support sometimes ranges only to dumping the formatting entirely.
- mIRC supports bold and underline text formatting, but lacks support for italic formatting. Reasons for this remain unknown.
- mIRC does not support native IPv6.
- Due to mIRCs popularity many new users assume that mIRC and IRC are the same thing, and not that mIRC is a client with which to connect to an IRC network/server. This is especially annoying to experienced IRC users (who often use other clients).
Slap! function
A famous feature associated with mIRC even though it predates it is the ability to "slap" another user by right-clicking the target's nickname. This results in the line of text "A slaps B around a bit with a large trout". It serves no other function than to send the message, which is merely an execution of the "/action" ("/me") command in IRC. Such an action can warrant a kick or even a ban in many channels.
The sentence "A slaps B around a bit with a large trout" is thought to be a reference to Monty Python's sketch The Fish-Slapping Dance.
This function can be removed by editing mIRC's built-in script.
mIRC Scripting
For novice users this function may be a bit overwhelming, but it is an ingenious addition to the program. With mIRC Scripting (also referred to as "remote") you can make your client do specific tasks on specific events. For instance: You can make your client answer "I'm here!" when someone writes your nick suffixed with a question mark; "yournick?", in either all, or just some specific channels. Here's how you can do it for a specific channel: Say your nick is "wiki" and the channel you're in is "#wiki" (channels in IRC are prefixed with a hash sign)
on *:TEXT:*anyone saw wiki*:#wiki:{ msg $chan I'm here! }
If you now change your nick without editing the script manually, the script will not work. Fortunately mIRC provides several functions that makes this no problem at all. To list some from the examples:
- $me (your current nick)
- $nick (the one who triggered your event)
- $chan (the channel the triggered event occurred in)
- $+ (a function to concatenate two strings; "a $+ b" produces "ab")
- $1 (the first token (word) in a sentence; "a b c d e" a = $1, b = $2, c = $3 etc)
on *:TEXT:*:#:{ if ($1 == $me $+ ?) { msg $chan I'm here, $nick $+ ! } }
Now mIRC's if/else operators are being used. These are logical operators that you find in most scripting/programming languages. In addition we use an asterisk instead of a specific string to indicate that the event shall trigger on ALL text. #wiki has been changed with '#', this has the effect of triggering the event from ANY channel you're in, instead of just '#wiki'. If you use an asterisk '*' instead of a hash sign '#' you'll allow the event to be triggered by queries as well. To allow the event from triggering only by queries, you can use a question mark '?'.
So for queries:
on *:TEXT:*:?:{ if ($1 == $me $+ ?) { msg $nick I'm here, $nick $+ ! } }
But what if you want the event only to trigger in specific channels? Then we'll use the logical AND operator '&&', and the logical OR operator '||'.
on *:TEXT:*:#:{ if ($1 == $me $+ ?) && ( ($chan == #wiki) || ($chan == #wiki.en) ) { msg $chan I'm here, $nick $+ ! } }
The extra parentheses are necessary to ensure that the logical AND operator "AND" the correct conditions. The rest is hopefully self-explanatory.
If you want to know more about mIRC Scripting, all you have to do is download mIRC, and type "/help" in any window. As an example, if you want to know more about '$1' function, type:
/help $1
For information regarding the events f.i the TEXT event: /help on text
mIRC scripting is not limited to IRC related events and commands. There is also support for COM objects, calling DLLs, sockets and dialogs (for GUIs), amongst other things.
Connecting to Multiple Servers on Startup
mIRC does not have native support for connecting to multiple servers on startup, but this can be emulated with a simple remote script.
on 1:START:{ /server irc.freenode.net /server -m us.quakenet.org [-i yournick alternatenick email name] [-j #channel] }
Easter Eggs
mIRC has many eggs hidden in it, including:
- Clicking on Khaled's nose in the about dialog will play a squeaking sound, and right-clicking anywhere in the dialog will show a bouncing dot over the I in the text that says "mIRC".
- In versions above and including 6.16, Clicking on Khaled's picture in the about dialog will load your web browser to Khaled's personal webpage.
- Typing "Arnie" in the about dialog will display a green stuffed dinosaur.
- Clicking the mIRC logo in the about dialog will swap it for the old logo, and clicking again will swap back.
- Right-clicking the last button in the toolbar makes the button change to a smiley.
- Typing the command "/xyzzy" will echo "Nothing happens." in red (or in some other color, depending on the user settings).
- Right click anywhere in the About dialog and a very small, one pixel dot will begin to bounce above the "I" on the word "mIRC" on the top left.
See also
External links
- Official website
- mirc.net
- beirutscripts.net
- mircscripts.org
- hawkee.com
- AntiUTF8-script for mIRC (obsolete since mIRC 6.17)
- UTF-8 conversion support for mIRC (obsolete since mIRC 6.17)
- team-clanx.org
- mircv6loader REAL IPV6 support for mIRC