"IRC UNLEASHED"

A comprehensive Guide to Internet Relay Chat:

(By Mustapha H.Bengali)


    Inside the Document :

  1. Introduction.
  2. Clients and Servers.
  3. How to behave on IRC.
  4. Privacy on IRC.
  5. Private Conversation Commands.
  6. Channels & Public converasations.
  7. Channels & User modes.
  8. Client to Client commands.
  9. Quick Reference Panel.
  10. Further into IRC Wizardry.
  11. Frequently Asked Questions.
  12. Contact the Author.

 Introduction:


Have you ever wanted to talk with other computer users in other parts of the world? Well guess what... You can! The program is called IRC, (Internet Relay Chat), and it is networked much over North America, Asia Europe, and Oceania. When you are talking on IRC, everything you type will instantly be transmitted around the world to other users that might time, they can then type something and respond to your messages, and vice versa. I should warn you that the program can be very addictive once you begin to make friends and contacts on IRC, especially when you learn how to discuss in 14 languages... Topics of discussion on IRC are varied, just like the topics of Usenet newsgroups are varied. Technical and political discussions are popular, especially when world events are in progress. IRC is also a way to expand your horizons, as people from many countries and cultures are on, 24 hours a day. Most conversations are in English, but there are always channels in German, Japanese, French, Finnish, Thai, Chinese and occasionally other languages. IRC gained international fame during the late Persian Gulf War, when updates from around the world came across the wire, and most people on IRC gathered on a single channel to hear these reports.


GETTING STARTED:

Clients and Servers :

IRC (original code was written by Jarkko Oikarinen) is a multi-user, multi-channel chatting network. It allows people all over the internet to talk to one another in real-time. IRC does everything 'talk' does, but with better protocol, allowing more than 2 users to talk at once, with access across the aggregate Internet, and providing a whole raft of other useful features.There are two ways to enter IRC from a Unix system. If you are using the emacs (editor from Richard Stallman and the Free Software Foundation) lisp client, you just have to type "M-x irc", (if this doesn't work you may need to load the client into your emacs session).

If you are using the C client, (easier for beginners), then you usually type "irc". Non-Unix boxes have special clients, each of which has to be configured using a special procedure. Check the manual or help screen for more information. If you wish to be known by a nickname which is not your login name, type "irc " instead. Each IRC user, ("client"), chooses a nickname. All communication with another user is either by nickname or by the channel that they or you are on (more information about channels (later on). The most important thing to remember about IRC is that you have to be willing to explore and learn to use it... Take your time, try not to get flustered, enjoy yourself, and you will soon be making new friends all over the world! IRC is based on a client-server model. Clients are programs that connect to a server, a server is a program that transports data, (messages), from a user client to another. There are clients running on many different systems, (Unix, emacs, VMS, MSDOS, VM...), that allow you to connect to an IRC server. The client which will be spoken of here is the most widespread: ircII, (originally designed by Michael Sandrof). Other clients are similar, and often accept ircII commands.


How to behave on IRC:

The most widely understood and spoken language on IRC is English. However, as IRC is used in many different countries, English is by no means the only language. If you want to speak some other language than English, (for example with your friends), go to a separate channel and set the topic to indicate that. On the other hand, you should check the topic before you move to a channel to see if there are any restrictions about language. On a non-restricted channel, please speak a language everybody can understand.

If you want to do otherwise, change channels and set the topic accordingly. It's not necessary to greet everybody on a channel personally. Usually one "Hello!" or equivalent is enough. And don't expect everybody to greet you back... On a channel with 20 people that would mean one screenful of hellos. It's sensible not to greet, in order not to be rude to the rest of the channel. If you must say hello to somebody you know, do it with a private message. The same applies to goodbyes. Also note that using your client facilities, (ircII "ON" command for instance), to automatically say hello or goodbye to people is extremely poor etiquette. Nobody wants to receive autogreets. They are not only obviously automatic, but even if you think you are polite you are actually sounding insincere and also interfering with the personal environment of the recipient when using autogreets.

If somebody wants to be autogreeted on joining a channel, he will autogreet himself. Remember, people on IRC form their opinions about you only by your actions, writings and comments, so think before you type. If you use offensive words, you'll be frowned upon. Do not "dump" to a channel or user, (send large amounts of unwanted information). This is likely to get you kicked off the channel or killed off from IRC. Dumping causes network "burps", connections going down because servers cannot handle the large amount of traffic anymore. Other prohibited actions include:

Privacy on IRC:

You should always keep in mind that messages you send to someone over IRC are passed along all the servers between you and and the person you are writing to. When you're sending a letter to someone, any postman on the way could open it and read its contents... Well, it's the same on the network (Actually its worse. Any IRC-Admin could compile its server in "debug" mode and log whatever messages are transmitted through his node, (it has already been done), so a good thumb rule is not to trust the servers. IRC IS NOT A SECURE WAY OF COMMUNICATION!. How to establish direct communications between clients will be explained later. This should be used when you wouldn't want anybody else on IRC to intercept your private messages.

/WHOWAS <nickname> 
   Shows  information  about who used the given nickname last, even if no
one is currently using it.

        /WHOWAS Nappy
        
           *** Nappy was [email protected] (Artistic ventures
               highlighted. Rob a museum.) on channel *private*
           *** on irc via server poly.polytechnique.fr (Signoff: Mon Jun 22
               20:15:23)

Very often, an unsuccess call to WHOIS will lead you to try WHOWAS. That's why ircII allows you to "/SET AUTO_WHOWAS ON" ;that way, a "*** No such nickname" message will automagically generate a "/WHOWAS <Nickname>". Try typing "/HELP SET AUTO_WHOWAS" for more information on this topic.

/AWAY <message>
   Leave a message explaining that you are not currently paying attention
to IRC. Whenever someone sends you a MSG or does a WHOIS on you, they
automatically see whatever message you set. Using AWAY with no parameters marks you as no longer being away.

        /AWAY <Gone to get a cup of coffee.>
              *** You have been marked as being away

        /AWAY
              *** You are no longer marked as being away
  

Private conversation commands

      Keyword         Action
      ~~~~~~~         ~~~~~~
      MSG             sends a private message
      QUERY           starts a private conversation
      NOTICE          sends a private message
      NOTIFY          warns you of people logging in or out IRC
      IGNORE          removes output from specific people off your screen

You can use the MSG command, (usually "M" is an alias for it), to send someone a message that only that person can read.

/MSG <nickname> | <channel> <text>
      Send a private message to specified nickname.

        /MSG Nap This message is for Nap only.
         -> *Nap* This message is for Nap only.

        On my screen will appear:

        *YourNick* This message is for Nap only.

If you want to send a private message to more than one person, you can specify a list of nicknames separated by commas, (no spaces).

       /MSG Nap,Sorg This message for both Nap and Sorg.
        -> *Nap* This message for both Nap and Sorg.
        -> *Sorg* This message for both Nap and Sorg.
   

Two special case nicknames are defined. If the nickname is "," (a comma), the message is sent to the last person who sent you a MSG. If the nickname is "." (a period), the message is sent to the last person to whom you sent a message.

You can have a private conversation by only using /MSG. However, typing "/MSG <nick> <text> " or "/MSG . <text>" gets cumbersome. That's where the /QUERY command comes in handy.

/QUERY [<nickname>|<channel>]
   Starts a private conversation with <nickname>.

   All text you type that would normally be sent to your channel now goes
to the supplied nickname in the form of MSGs. To cancel a private conversation, use QUERY with no arguments.

        /QUERY Nap
           *** Starting conversation with Nap

             Blahblahblah
            -> *Nap* Blahblahblah

        /QUERY
           *** Ending conversation with Nap

There is also another command to send messages, called NOTICE. Unlike MSGs, NOTICEs are surrounded by '-' when printed, and no automated responses, (such as generated by IGNORE or an automaton), will be sent in reply. Services, (robots), on IRC often use this form of interaction.

/NOTICE <nickname>|<channel> <text>
   Sends a private message to the specified <nickname>.

        /NOTICE Nap Better use /MSG instead of /NOTICE.
          -> -Nap- Better use /MSG instead of /NOTICE.

        On my screen will appear:

         -YourNick- Better use /MSG instead of /NOTICE.


   As you begin to make new friends over IRC, you'll want to mark certain
   nicknames such that you will be warned when they signon or off.

/NOTIFY [[-]<nickname>]
   Adds or removes <nickname> to the list of people you'll be warned when they enter or quit IRC (in ircII versions prior to 2.2, too many people
in the NOTIFY list cause excessive slowness).

        /NOTIFY Nap Nappy
          *** Signon by Nap detected

        /NOTIFY
          *** Currently present: Nap
          *** Currently absent: Nappy

Eventually, you may wish some day not to see messages from a specific user on your screen. This may happen when someone is dumping large amounts of garbage, or if someone is harassing you. The proper response to such a behavior is to IGNORE that person. IGNORE is a very powerful command, and can be used in many ways. However the basic usage of this tool is the following.

/IGNORE [<nickname>|<user@host> [[-]<message type>]]
   Suppresses  output from the given people from your screen. IGNORE can
be set by nickname or by specifying a userid@hostname format. Wildcards
may be used in all formats. Output that can be ignored includes MSGs,
NOTICEs, PUBLIC messages, INVITEs, ALL or NONE. Preceding a type with a
"-" indicates removal of ignoring of that type of message.

        /IGNORE *@cheshire.oxy.edu ALL
           *** Ignoring ALL messages from *@CHESHIRE.OXY.EDU

        /IGNORE
           *** Ignorance list:
           ***     *@CHESHIRE.OXY.EDU      ALL

        /IGNORE *@cheshire.oxy.edu NONE
           *** *@cheshire.oxy.edu removed from ignorance list


Channels and Public Conversations

On IRC, there are a lot of places where you can "hang out"; those places are called 'channels', (most of the information in this section can also be obtained by issuing "/HELP CHANNEL"). You can compare conversations on a channel to a conversation among a group of people: you see/hear everything that is said, and you can reply to anything that's said. What you type is received by everyone who's willing to listen - and everyone who is late will not hear what was said before, unless repeated by one of the ones who were there. (Who said "real life" ?)

All channels on IRC have names: a "#" sign followed by some kind of text-string, like "#C++" or "#Asians" or "#EU-Opers". Usually, the name of the channel will indicate the type of conversation that's going on in there. Don't count on it, though.


Channel commands
       Keyword   Action
       ~~~~~~~   ~~~~~~
       LIST      lists channels, number of users, topic
       NAMES     shows the nicknames of the users on each channel
       JOIN      sets your current channel, (same as CHANNEL)
       WHO       gives a listing of users
       INVITE    sends an invitation to another user
       LEAVE     leaves a channel, (same as PART)
       KICK      gets rid of someone on a channel
       TOPIC     changes the topic of the channel
       ME        sends anything about you to a channel or QUERY
       DESCRIBE  sends anything about you to a person or channel
   Every channel has certain characteristics, called channel modes.
These will also be explained below.  Recall the NAMES and LIST
commands; they will show you the names of the existing channels.

/LIST [[<flags>] <channel mask>]
  Lists all current "channels", number of users, and topic. The
displayed list may be quite long, so you can limit it using flags.
"/LIST  -MIN n" for instance removes channels with less than 'n' users of the output.

        Example:

        /LIST -MIN 5
           *** #aussies   5
           *** #amiga     5        Daily Amiga Silence...join&enjoy
           *** #hottub    21       Imagine sky, high above...
           *** #tuebingen 11       Happy Borthday CHUCK!!!
           *** #Christian 6        Jesus!
           *** #Twilight_ 15       The Oper Bar & Grill
           *** #initgame  5        More players needed!!!!!!!!!!!!
           *** #Taiwan    8        Welcome good friends.
           *** #espanol   6        EMERGENCIA SE Necesitan Mujeres!
           *** #sherwood  7
           *** #francais  6        on apprend le japonais (japanese welcome)


/NAMES <channel mask>
   Shows the nicknames of all users on each "channel", (these may be very long. Remember to filter them with "-MIN n" or "-MAX n").

       /NAMES -MIN 5
         Pub: #twilight> Mycroft @sojge scorpio @Troy @Avalon @Nap phone
              Merlinus Lumberjak @tzoper
         Pub: #espanol   Cacique Bonjovi leopardo Carina Miguel Cisco r2
         Pub: #amiga     @gio @Radix @xterm @mama @AmiBot
         Pub: #aussies   @Bleve @GrayElf @Insomniac @Morkeleb @titus
         Pub: #hottub    baby @Aldur KnightOrc @Toasty Gwydion @Belkira
              @Aiken Edge @Spockobot @Nada @ZBot @Aurik @anna @RedBaron
              @Katzen @esashi IceWolf @Eniigma @Digger @TheHeck

("@" (ampersand symbol) is preceded by the nicknames of the operator of the channel).

   To  join in the conversation on a certain channel you may use the JOIN
command.

/JOIN <channel>
   Sets your current channel to the supplied channel.

        /JOIN #Twilight_Zone
          *** Nap has joined channel #Twilight_Zone
          *** Topic: The Gernsback Continuum
          *** Users on #Twilight_Zone: Nap msa tober phone @julia @SirLance
              @Daemon @Avalon @Waftam @Trillian @tzoper

The CHANNEL command has the same effects. Note that if no parameters are given, your current channel is displayed.
Upon entering a channel, you are given useful details about it: list of users talking in that channel, topic... Joining a channel does not cause you to leave your previous channel unless NOVICE is set to ON. See "/HELP SET NOVICE".

Once in a channel, you may wish to get a detailed list of the people IRCing inside. That's where the WHO command comes in handy:

/WHO [<channel>|<wildcard expression>]
   Gives  a  listing  of  users.   "/WHO *" for the list of users in your current channel.

      /WHO #Twilight_Zone
        Channel    Nickname     S    User@Host (Name)
        ~~~~~~~    ~~~~~~~      ~    ~~~~~~~~~~~~~~~~    
        #Twilight_ Nap          H*   [email protected]
          (Quidquid latine dictum sit, altum viditur)
        #Twilight_ msa          H    [email protected] (Markku Savela)
        #Twilight_ tober        H    [email protected] (tober)
        #Twilight_ phone        H    [email protected] (Third
          row seats to the Cure? WHO ME? nah.. *grin*)
        #Twilight_ julia        G*@  [email protected]
          ( Future graduate of ACME Looniversity)
        #Twilight_ SirLance     G*@  [email protected]
          (Sir Lancelot)
        #Twilight_ igh          G    [email protected] (igh)
        #Twilight_ Daemon       G*@  [email protected]
          (-=Runaway Daemon=-)
        #Twilight_ Avalon       H*@  [email protected] (Avalon...)
        #Twilight_ Waftam       G*@  [email protected] (Daniel
          Carosone)
        #Twilight_ Trillian     G*@  [email protected] ( I turn to
          stone when you are gone )
        #Twilight_ tzoper       H*@  [email protected] (/msg
          tzoper help)

The first field is the current channel, then nickname, status, real name (in internet user@host form), and a small witty comment you can set yourself with the environment variable IRCNAME, (this will be detailed in section 2.8). Status indicates if a user is "H"ere or "G"one, (see AWAY), if IRCop ("*"), and/or chanop ("@").

It is also possible, when you are already on a channel, to ask someone to join your channel. The command is called INVITE.

 /INVITE <nickname> [<channel>]

   Invites  another  user to a channel.  If no channel is specified, your
current channel is used.

        /INVITE Nap
          *** Inviting Nap to channel #Twilight_Zone

If you receive an INVITE message, you can type "/JOIN -INVITE" to join the channel to which you were last invited, or simply "/JOIN <channel>".

To leave a channel, just issue a LEAVE command, (PART has the same effects):

 /LEAVE <channel>
     Leave a channel.

        /LEAVE #Twilight_Zone
           *** Nap has left #Twilight_Zone

   Well,  you  guessed  it,  if  there  is  a  way to invite someone on a
channel,  there's  also  the  possibility  to KICK someone out of it, for
example  if  this  person  is  behaving  like  a jerk, annoying people or
flooding the channel with unwanted information:

 /KICK [<channel>] <nickname>
    Kicks  named  user  off a given channel.  Only 'channel operators' are
privileged to use this command.

        /KICK #Twilight_Zone Target
           *** Target has been kicked off channel #Twilight_Zone by Nap

   Channels have topics, that indicate the current topic of conversation.
You can change this topic on a channel with the TOPIC command.

 /TOPIC [[<channel>] <topic for channel>]
    Changes the topic for the channel.

        /TOPIC The silent channel.
           *** Nap has changed the topic on channel #EU-Opers to The silent
          channel.

   At  times, you may want to send a description of what you are doing or
how  you  are  feeling  or  just anything  concerning you  to the current
channel  or  query.  It is absolutely good style to not forget the period
at the end of the sentence!

/ME <action description>
   Tells the current channel or query about what you are doing.

        /ME opens up the fridge.
          * Nap opens up the fridge.

   You can also use your own nickname as command, i.e. you can type
   the line with a leading slash:

        /Nap reaches out for the orange juice.
          * Nap reaches out for the orange juice.

   The same goal can be achieved towards a specific nickname using:

/DESCRIBE <nickname>|<channel> <action description>
   
  Sends anything concerning you to the <nickname> or <channel> you pass as first argument.

 (Note:  The look of the result depends on each client version, and might
         not be exactly the same as in the examples shown here.)

These commands make use of CTCP, a client-to-client protocol crafted to perform specific actions, but not understood by all clients, (more about CTCP in section 2.5). If you get an error message, your description may not have arrived properly.


Channel and User Modes


Channels can have additional constraints, which can be set by the MODE command, (most of the information in this section can also be obtained by issuing "/HELP MODE"). To understand this, recall that the first person to JOIN a channel effectively creates it and is initially "in charge" of the channel, ("Channel Operator" or quot;chanop"). He/She can subsequently add those constraints, make other people chanops at leisure.

Mode commands
               Keyword      Action
               ~~~~~~~      ~~~~~~
               MODE         changes channel or user mode

Public is the default mode for a channel. When someone is on a public channel, he can be seen by all other users,(if his own user mode permits this). Anyone can notice users on a public channel and join such a conversation.

Private means that, although anyone can see members of such a channel, you can't tell what channel they are on unless you are already on that channel with them. They just appear as "Prv: *" in LIST or NAMES. Since the number of potential channels is in the billions, this is quite some security - all you give away is the acknowledgement that you're IRCing.

If you are on a secret channel, someone who is not on the same channel can't even see that you are there. Your name does not show up in a LIST of active users. The only indication of your presence is that, when entering IRC, all new users are told that there are "NNNNN users on XXX servers". If someone checks on all users and finds less than NNNNN of them, he knows that other people are hiding on secret channels. But a secret channel user still cannot be found except by brute-force checking through all channels, a hopeless proposition in the face of the huge number of possible channel names. Security through obscurity finally means something.

 /MODE <channel>|<nickname> [[+|-]<modechars> [<parameters>]]
    
  Allows channel operators to change channel mode, or any user to change
their personal mode, (don't use this command too often, it floods the net
with worthless information).

      /MODE #Twilight_Zone +m
       *** Mode change "+m" on channel #Twilight_Zone by Nap

      /MODE Nap -i
       *** Mode change "-i"for user Nap by poly.polytechnique.fr

        And this is how to give 'chanop' status to someone on the channel

      /MODE #Twilight_Zone +o sojge
       *** Mode change "+o sojge" on channel #Twilight_Zone by Nap
      
   A "+ or -" sign  determines whether the mode should be added or deleted.

Try typing "/HELP MODE" to get further information. Channels can be moderated (only chanops can talk), secret, private, with a limited number of users, anonymous, invite-only, topic-limited, with a list of banned users...

The MODE command also allows you to modify your personal parameters, your "user mode". You can check your usermode with the command "/MODE <YourNick>" or sometimes "/UMODE". Note that user mode +i may be the default on some servers, in order to protect privacy of users. This should not be seen as a problem, since any user can change his/her personal mode whatever defaults a server may set.


Channel modes
         ModeChar           Effects on channels
         ~~~~~~~~           ~~~~~~~~~~~~~~~~~~~
         b <person>         ban somebody, person in "nick!user@host" form
         i                  channel is invite-only
         l <number>         channel is limited,<number> users allowed max
         m                  channel is moderated, (only chanops can talk)
         n                  external /MSGs to channel are not allowed
         o <nick>           makes nick a channel operator
         p                  channel is private
         s                  channel is secret
         t                  topic limited, only chanops may change it
User modes
        ModeChar            Effects on nicknames
        ~~~~~~~~            ~~~~~~~~~~~~~~~~~~~~
           i                makes yourself invisible to anybody that does
                            not know the exact spelling of your nickname
           o                IRC-operator status, can only be set
                            by IRC-ops with OPER
           s                receive server notices
           w                receive wallops (abused and deprecated)



Client to Client Commands

         Keyword            Action
         ~~~~~~~            ~~~~~~
         DCC                handles direct connections to remote clients
         DCC SEND           initiates a file transfer
         DCC GET            accepts a file transfer
         DCC CLOSE          ends a DCC connection or offer
         DCC LIST           shows current DCC connections
         DCC CHAT           initiates a secure chat between two clients

There are many other CTCP commands, and new ones are introduced all the time. There is a mechanism for you to find out what you can use: CTCP CLIENTINFO. To find out about your own client services, execute a CLIENTINFO on yourself.

        /CTCP Nap CLIENTINFO
           *** CTCP CLIENTINFO reply from Nap: SED VERSION CLIENTINFO
           USERINFO ERRMSG FINGER TIME ACTION DCC UTC PING :Use
           CLIENTINFO <COMMAND> to get more specific information

If you are interested in this powerful CTCP mechanism, have a look in the various ircII help files. "/HELP CTCP" might tell you more...!. However the client-to-client protocol has a very powerful feature: Allowing two people to exchange files.

To send small text files, electronic mail is probably the best solution, (don't rely on the user@host given by the WHOIS command to send mail. For people registered on NickServ, you can "/MSG [email protected] WHOIS nick" to get their E-mail address). However,ircII provides you a way to establish Direct Client Connections ("DCC")to perform functions like sending and receiving files.

 If NickA wants to send a file to NickB, then NickA should type:
         /DCC SEND NickB filename (Doesnt Work for Shell Users)

 On NickB's screen will appear:
          *** DCC SEND (filename) request received from NickA

 If he, (NickB), wants to get the file, he just needs to type:
         /DCC GET NickA filename

 A few seconds later
         *** DCC GET connection with NickA established
         *** DCC GET filename connection to NickA completed
 will   inform  both  users  that  data  transfer  has  been  successfully
 completed.

       Here's a quick overview of the subject:

 /DCC <function> [<arguments>]
    Handles direct connections to remote clients. The behavior of DCC is
determined by the specified <function<.


 /DCC SEND <nickname> <filename>
   Initiates a file transfer by direct client connection.


 /DCC GET <nickname> <filename>
   Accepts  a file transfer by direct client connection.  The sender must
first have offered the file with DCC SEND.


 /DCC CLOSE <type> <nickname> [<arguments>]
  Ends an unwanted DCC connection or offer. The <type>, <nickname> and <arguments> must be the same  as  those shown by "/DCC LIST". If the arguments are not supplied, the oldest connection of the specified type is closed.

 /DCC LIST
   Shows  current /DCC connections with their types, status and nicknames
involved.

More details can be found in ircII online help: try "/HELP DCC"... for more information.

However, if someone asks you to send him a file, DON'T do it unless you EXACTLY know what you are doing. For instance, NEVER send the password file of your system to anybody. This could grant crackers illegal access to your machines, and put you and your system administrator in much trouble.

DCC also allows two clients to establish a direct client connection for chat. This is a secure form of communication, since messages are not sent through the IRC network.


 /DCC CHAT
   Initiates  a direct client connection chat to the given nick, who must
repond  with  DCC  CHAT.   Once  established, messages are sent over with
"/MSG =Nickname ...".

Quick Reference Panel

         Keyword      Action
         -------      ------
         !            recalls previous commands for re-editing
         ADMIN        displays information about a server
         AWAY         leaves a message saying you're not paying 
                      ATTENTION.
CLEAR puts some white space on your screen CTCP performs certain client specific actions
DATE shows server current date and time DCC handles direct connections to remote clients DESCRIBE sends anything about you to a person or channel
HELP prints help on the given command HISTORY displays the command history
IGNORE removes output from specific people off your screen INFO shows useless information about IRC INVITE sends an invitation to another user
JOIN sets your current channel
KICK gets rid of someone on a channel
LASTLOG lists the most recent messages LEAVE leaves a channel LINKS shows servers on the IRC network LIST lists channels, number of users, topic LUSERS gives a brief listing of users, servers and operators
ME sends anything about you to a channel or QUERY MODE changes channel mode MOTD displays the server message-of-the-day MSG sends a private message
NAMES shows the nicknames of users on each channel NICK changes your nickname NOTICE sends a private message NOTIFY warns you of people logging in or out IRC
QUERY starts a private conversation QUIT exits your IRC session
SERVER switches your primary server STATS shows some irc server usage statistics
TIME shows server current date and time TOPIC changes the topic of the channel TRACE shows the server connections of the given machine
USERS prints users logged on the server machine VERSION shows client and server version number
WHO gives a listing of users WHOIS displays information about someone WHOWAS displays information about someone who just left

Further into ircII Wizardry

When you use ircII on a (semi)regular basis, you will discover that every time you start the program you will issue the same initialization sequence. If that is the case, I have good news for you: you don't have to do that anymore! ircII will, at startup, load a file called ".ircrc", (full path: $HOME/.ircrc). It will treat each line in that file as if you typed it manually.


   For example, if the content of your .ircrc file is:

        JOIN #Twilight_Zone

   then each time you will start IRC, you will join this channel. 

Advanced commands may come in handy if you need them. Feel free to browse in ircII online help to find out more about them. A few of them are probably worth learning...!.

  Writing automatons:

   An  automaton,  (also  called  robot or service), is a program that is
connected to the IRC network to provide services.  Many people try to set
that up with a few ircII commands like:

on ^msg "% help" notice $0 This is LameBot 1.0

However, you should know that setting up an automaton using ircII ON facilities is quick and dirty, and should be reserved for robots that rely on ircII specific features such as DCC (file servers for instance). Writing a program in C, perl or any decent programming language should take longer in the beginning, but your efforts will be rewarded. You can download skeletons of such programs on some ftp sites that keep IRC related stuff (check in the Frequently Asked Questions part).

Although most robots-writers believe they have created a "smart thing", 99% of the robots online happen to be a nuisance to the IRC community, because a few simple rules were not respected by their owners.

The main idea is that robots should neither be seen nor heard:
  • automatons should be clearly identified as such, having "bot", "serv" or "srv" in their nickname.
  • they should use NOTICES to communicate with the rest of the world, and not reply to NOTICES they get.
  • they should be able to always be killed (craziness is a frequent disease among robots).
  • they should be able to be killed remotely by their owner via IRC.
  • they should not give access to their owner's real files, (bandits have already been able to crack people's accounts through their robots).
  • they should not send messages to channels (unless the channel is dedicated to that robot).
  • they should not flood channels with MODE changes.
      Basically, if you have a command like this :
 
          on -JOIN "Lamer #BotTub" mode #BotTub +o Lamer

      then you are wrong. Because this is what you will get:

 *** Lamer ([email protected]) has joined channel #bottub
 *** Mode change "+o Lamer" on channel #bottub by LameBot
 *** Mode change "+o Lamer" on channel #bottub by StupidSrv
 *** Mode change "+ooo Lamer Lamer Lamer" on channel #bottub by      FloodServ
 *** Mode change "+o Lamer" on channel #bottub by Dumbbot

And this will get boring very soon, so don't be surprised if such robots get banned from most channels. A good kludge is to wait until someone asks explicitly the robot to be opped on a channel. This could be:

  
     on -MSG "Lamer op me on #BotTub" mode #BotTub +o Lamer

  If you don't respect rules 2 and 6 above, this may happen too:

 *** TalkBot ([email protected]) has joined channel #bottub
     <LameBot> Hi TalkBot!
     <TalkBot> Hello LameBot! How are you?
 *** Mode change "+o TalkBot" on channel #bottub by LameBot
     <LameBot> Fine thanx.
     <TalkBot> Thank you for the op, LameBot.
     <LameBot> No problem, TalkBot.
 *** Signoff: Talkbot (ircserver.irc.edu where.the.hell)
 *** TalkBot ([email protected]) has joined channel #bottub
 *** Mode change "+o TalkBot" on channel #bottub by where.the.hell
 *** Mode change "+o LameBot" on channel #bottub by TalkBot
 *** Mode change "+o TalkBot" on channel #bottub by LameBot
     <TalkBot> Thank you for the op, LameBot.
     <LameBot> No problem, TalkBot.
     ...

Remember the golden rule:
A Smart bot wont act unless explicitly asked by someone .

FREQUENTLY ASKED QUESTIONS:

Which server do I connect to?

  It's usually best to try and connect to one geographically close, even
though that may not be the best.  You can always ask when you get on IRC.
Here's a list of servers available for connection:

      Open IRC servers
 
              America   
                        Canada       ug.cs.dal.ca
                        USA          csa.bu.edu
                                     ucsu.coloradu.edu
                                     irc.caltech.edu

              EUROPE
                        Finland       nic.funet.fi
                        France        poly.polytechnique.fr
                        Germany       noc.belwue.de
                        Sweden        irc.nada.kth.se

              Oceania
                        Australia     munagin.ee.mu.oz.au
 

This is by no means, a comprehensive list, but merely a start. Connect to the closest of these servers and join the channel #Twilight_Zone or, if you are in Europe, #EU-Opers. When you are there, immediately ask what you want. Don't say "I have a question" because then everyone will ignore you until you say it a few times, and then they'll jump down your throat and rip your lungs out. No one knows if he can answer your question until you ask it.

What are good channels to try while using IRC?
#Hottub and #initgame are almost always teeming with people. #Hottub is meant to simulate a hot tub, and #initgame is a non-stop game of "inits" (initials). Just join the fun and find out! (German users may try channels named after German university towns...)

Many IRC Operators are in #Twilight_Zone, while European Operators concentrate in #EU-Opers... So if you join an Operator channel and don't hear much talking, don't worry, it's not because you joined, Operators don't talk much on such channels anyways!

How do I get nifty effects with ircII?
You can highlight messages you send using control chars: parts of text surrounded by control-b (^B) will appear in video reverse to most ircII users for instance. However the appearance of such effects relies on the terminal abilities of the user you're writing to.

In some cases keys are already bound to something. For instance, ^B is normally bound to BACKWARD_CHARACTER, so you will need to define a "quote-character" key: just enter "/BIND ^W QUOTE_CHARACTER" then "/BIND ^W^B SELF_INSERT" and it may work...

Highlighting ircII output
Key Effect:
^B Video reverse ^V Underline ^_ Bold
What if someone tells me to type something cryptic?

NEVER type anything anyone tells you to without knowing what it is. There is a problem with typing a certain command with the ircII client that gives anyone immediate control of your client, (and thus can alter your account environment also). Look in the ircII on-line help each time you can.

I get strange characters on my screen, what are they?

IRC has quite a lot of people from Scandinavian countries, }{|][\ are letters in their alphabet (IRC is supposed to support the ISO Latin-1 8-bit character set, but your client must be able to display them...) This has been explained on IRC about a thousand and one times, so read the following, do not ask it on IRC:

Nordic countries character translations
    Character  Description
    ~~~~~~~~~  ~~~~~~~~~~~
    [, {       'a' with two dots over it
    ], }       'a' with a small circle above it
    \, |       'o' with two dots over it, or a dash ("/") through it
               ("[", "]", and "\" = upper case)

In addition to that, Japanese IRC'ers use a special ANSI escape control sequences to transmit their Kanji alphabet. This may also look funny if you get some of it... Here's a sample: [$B$?$K$7[$B;$m$K# (nice, uh?).

I'm being flooded or harassed by a jerk. HELP!

If somebody is behaving like a jerk on IRC, like dumping to a channel Mb's of garbage, then he should be KICKed and eventually banned from the channel, (see "/HELP MODE" for details).

If it's a matter of personal harassment, then you should set a proper IGNORE on that person, (preferably on his userid@hostname). Remember you can use wildcard expressions for IGNORE.

Where can I find more?

You can join various IRC related mailing lists."Operlist" discusses current (and past) server code, routing and protocol.There is also low-traffic mailing-lists for ircII vmsirc and irchat clients.

IRC related mailing lists :

   E-mail for subscriptions      
   ~~~~~~~~~~~~~~~~~~~~~~~~ 
[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

'Contact the Author :'
Me !
E-Mail: [email protected]

Home Page

Telephone: 8392743
Postal Address:
302/C,Mansur Chambers,
Saify park, Church road,
Marol, Andheri(E),
Mumbai - 400 059.

<= Back

This page maintained by Lyndon Cerejo
Updated : May, 97