IRC in 3

Overview of Internet Relay Chat


IRC or Internet Relay Chat is the grandfather of all modern IM/chat apps we’re familiar with today. While waining in popularity, it is still an effective means of communication for adhoc or permanent groups. It’s used frequently for informal technical support with emerging open source technologies.

There are several separate IRC networks. These are essentially IRC servers linked together for message passing between them. They share a set channels. Different networks host different channels, and networks may be thematic.

loufiz_graph_irc_network

A channel is essentially a group chat. Each channel has different rules (channel modes) and channels may have restricted or open membership. In it’s simplest form IRC requires no user registration. Simply connect to an IRC network and choose a handle or nickname (nick) that is not currently in use. Of course it is possible to register a nick (as you would register for any IM account), but extended non-use (~10 weeks) results in your nick getting recycled for others to use. Apart from securing an identity, having a registered nick is required to join some channels or when accessing the IRC server from a disreputable IP range (generally because of a shared proxy or VPN service). Generally you always want to have at least one registered nick. Unregistered nicks are disposable and there is no guarantee you can use the same name twice. You can have as many nicks as you need.

Establishing a Registered Identity


Download an IRC client. There are plenty and many are free.

Connect to an IRC network. There are many and your IRC client may already have the connection details to the popular ones.  In the example below I connected to freenode. at chat.freenode.net:6667. Initially make sure you use no public VPN or proxy otherwise anonymous access is blocked.

Your client will probably connect you with a generic nickname like “Guest44”.

Step 1. Choose a handle for yourself.

/nick mynickname

Step 2. Let’s register that nick with a real email address. NickServ is a bot, but we send a private message to it as we would to anyone else.

/msg NickServ REGISTER mypassword myemailaddress

Step 3. You will receive an email that will give you a verification code. Use that verification code to convince the NickServ you have access to that email address.

/msg NickServ VERIFY REGISTER mynickname myverificationcode

Step 4. OK, now that our nick is registered, let’s make sure nobody else uses it. Disallow anonymous use of your registered nicks.

/msg NickServ SET ENFORCE ON

Step 5. Do not expose email

/msg NickServ SET HIDEMAIL ON

Step 6. Optional, otherwise skip ahead to step 9. Now we will add a second nick and make that registered as well. Switch to a different nickname.

/nick christian_v

Step 7. Link the current nickname to another registered nickname (one used in Step 1, and the password specified in Step 2).

/msg NickServ IDENTIFY mynickname mypassword

Step 8. Group all nicknames together.

/msg NickServ GROUP

Step 9. Verify your identity.

/msg NickServ INFO

Remember, nicknames expire. On freenode after 10 weeks of non-use or only 2 weeks if not used after initial creation. Each IRC network is different.

Ways to Connect with a Registered Identity


Method 1. Upon initial connection:

/CONNECT chat.freenode.net 6667 mynickname:mypassword

Method 2. After connection:

/MSG NickServ IDENTIFY mynickname mypassword

Method 3. Alternatively, if you use a client-side SSL certificate (imported into IRC client) and register that certificate fingerprint with NickServ you can avoid using passwords. The password you specified in Step 2 need not be used as long as your IRC client has the client-side cert installed.

There are many ways to create a self-signed client certificate. Google is your friend.  Once you have created/obtained it and installed it into your IRC client, take note of the SHA1 fingerprint.

/msg NickServ cert add mysha1fingerprint
/msg NickServ cert list

General Usage


/NICK myothernick

Show channels on server.

/LIST

Join a channel. If #somechannel does not exist, it is created

/JOIN #somechannel optionalpassword

Ask to join a restricted channel.

/KNOCK #inviteonlychannel Please invite me!

Create your own channel. Setting the mode to +i makes channel members invisible. +s Marks the channel as secret. The channel will not appear in channel listings, the NAMES command will not list nicknames for users who are not channel members, and the channel will not appear in WHOIS unless WHOIS is called by a fellow channel member.

/JOIN ##mynewchannel channelpassword 
/MODE ##mynewchannel +si

Channels come and go constantly. You can reserve a channel much the same way a nick can be reserved. For reserved channels see: https://botbot.me/how-to-setup-irc-channel/

/LEAVE #somechannel
Sending Messages
This is a public message to everyone in the channel.
/MSG somenick This is a private message to somenick

Send a message to everyone joined to a channel. Sender has not joined channel. Channel may disallow.

/MSG #somechannel This is a message to a channel
/QUERY somenick
This is a private message to somenick
and so is this
/QUERY
This is a public message

Direct Client-to-Client communication circumvents the server. Messages are passed directly between parties. Files can be passed as well. This is a powerful privacy feature since IM clients always pass their messages via a server intermediary.

nickA wants to talk to nickB over a direct link, and send a file:

/DCC CHAT nickB
/DCC SEND myfile.jpg nickB

nickB sees a request for connection. To establish the chat link and receive the download:

/DCC CHAT nickA
/DCC GET nickA

nickA terminates the direct connection with nickB

/DCC CLOSE CHAT nickB
Learn about the users around you

Invisible users not returned by WHO

/WHO somepartialnick

Get a list of all nicks joined to a channel. Invisible users not returned.

/NAMES #somechannel

Get details on a nick. Reveals host, real name field, channels, server, login time

/WHOIS somenick
/WATCH +somenick
/WATCH -somenick
Cut down on the noise and boost your privacy
  • +R only send/receive from registered nicks
  • +C only receive from users in same channel
  • +i makes you invisible by removing mynick from NAMES and WHO, hides your channels
/MODE mynick +R 
/MODE mynick +C 
/MODE mynick +i

Disconnect from the IRC network

/QUIT

Pros and Cons of IRC

Pros

  • Great for command line lovers.
  • Powerful; lots of commands, lots of control
  • Bots
  • Create your own invite only channels (assuming the server allows)
  • Can establish direct client-to-client connections

Cons

  • Frightens beginners
  • No (native) persistent message log. When you connect to a channel you generally don’t have any access to message history. Users will tend to remain logged in and use /AWAY instead of leaving the channel.
  • While your handle may be anonymous, the IRC server exposes your IP address to all other users.
  • Being absent from the IRC server too long may result in your handle being recycled

Many of these issues can be mitigated by using an IRC bouncer (BNC).

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s