IRC - It ain't just a GUI!

This is where members can submit tutorials that they have created on any computing related subject.
Post Reply
User avatar
Niels
Sargeant at Arms
Posts: 260
Joined: Wed Sep 01, 2004 12:31 am
Location: San Francisco
Contact:

IRC - It ain't just a GUI!

Post by Niels » Tue Feb 08, 2005 7:29 pm

I've been doing other stuff, and haven't posted here much lately. However, I'm back. Here's my latest tutorial, just wrote it last night:
----IRC - It ain't just a GUI!----

By Niels (aka Ch4r) | nielsosky@gmail.com | http://binaryuniverse.net



| Copy Info |



This tutorial may be redistributed and hosted on other servers as long as full credit is given where it is due and it remains completely unchanged.



| Introduction |



This tutorial is meant for the IRC newbie. It will help familiarize you with IRC, specifically the commands involved, as that is the main and most powerful aspect. Hence the name "It ain't just a GUI!". If you have any questions, comments, concerns, or any other form of feedback, you can contact me either via email (nielsosky@gmail.com) or by catching me around the Binary Universe forums (http://binaryuniverse.net/forums). Note that if you have a question about IRC in general, your better option would be to post at the BU forums. Having said that, let's get started. Enjoy!



| Wtf is IRC? What do I need? |



IRC, short for Internet Relay Chat, is a means of chatting to multiple people over the internet. To use IRC, one connects to an IRC server with an IRC client, and then joins a channel, which may also be thought of as a chat room. Once in the room, all messages a user types are broadcast to all other clients in the room.



For this tutorial, you will need an IRC client. I would recommend X-Chat or IceChat, both of which I have used (I use X-Chat on Linux and IceChat on Windows). They are both relatively simple, and are generally nice IRC clients. Another commonly used IRC client is mIRC, although I don't have much experience with that. You will need to choose a nickname, and possibly fill in other information such as alternate nicks depending on your client. For information on how to do this, read the client's ReadMe.



| Connect to a server and joining a channel |



To join a chat, you need to do two things. First, you need to connect to an IRC server, and then you need to join a channel, which is the chat room. Channel names always begin with a hash (#). An example is #binaryuniverse.



Now, fire up your IRC client and type this, then hit enter:



/server irc.quickproxy.net



This is the format of a simple IRC command. IRC commands begin with / followed by the command, and then some arguments. This particular command tells the IRC client to connect to the server irc.quickproxy.net. Once you've connected to the server, you join a channel with the /join command:



/join #binaryuniverse



This command is used to join the channel #binaryuniverse. Note that the /join command can be shortenned simply to /j. Thus we could use the following instead: /j #binaryuniverse. Now that you're in the channel, you can type stuff and hit the enter key to send messages. However, there's much more to IRC than this.



| Nicks |



Your nick is the name you are identified by in IRC. To keep your nick unique to you, you should probably register it. This is done by sending the register command as a private message to NickServ, which is the service that deals with nicks. More arguments need to be included to specify the password and email address that the nick is registered to. The syntax for the register command is as follows:



/msg nickserv register password email@adress



Eg, this registers a nick with the password 'woot_irc' and the email person@site.net:



/msg nickserv register woot_irc person@site.net



Once a user registers a nick, the user must authenticate with the password they used to register when they join the server with the identify command, using the following syntax: /msg nickserv identify password. So to take my earlier example:



/msg nickserv identify woot_irc



Note that the /msg command is used to send a private message. In the case of the register and identify commands, a PM is sent to a special service, NickServ. However, /msg can also be used to send a PM to another user on the server. For example, this sends a message to the_irc_user saying 'Hey!':



/msg the_irc_user Hey!



| Modes |



Modes are IRC's method of configuration. Through modes one can designate the administration of a channel, who's banned from the channel, a password for the channel, and many other similar options. Following are modes that are commonly set on a specific user:



+o - Op(erator). This is the equivilant of an adminsitrator on a message board. They can ban people, set modes, make other people Operators, and so on.



+h - H(alf)Op(erator). Hops are the equivilant of moderators on message boards. Hops can set the topic, ban people, and set +v, but their power is generally much more limited than that of an op. For example, they cannot set other hops.



+v - Voice. Having voice simply means that you can talk when the channel is muted. Users without vocie that are not h/ops cannot talk when the channel is muted, but users with voice can.



+b - Ban. Not much to say. It just means you can't join the channel.



The following modes are worth noting, but cannot be set on a specific user. Rather, they are set to configure the channel in general:



+i - Invite only. Only users that are invited with the /invite command can join the channel.



+m - Muted. Only users with +v, +o, or +h can talk.



+k - Requires keyword. This means that you must know the keyword/password to the channel to join it.



+l - Limit. This sets a limit for the maximum amount of users for the channel.



Note that there are several other modes that can be set, but as this is a basic introductory tutorial, I cover only the basics. Modes are set with (surprise, surprise) the /mode command. Channel modes are set in the following way:



/mode #channel +mode



For example, '/mode #binaryuniverse +m'. If the mode requires mroe arguments, such as a password or a limit for the channel, these are added after the mode. For example, to set a keyword of 'the_channel_pass', the following command would be used:



/mode #channel +k the_channel_pass



To remove a channel mode, simply replace +mode with -mode. Note that the additional arguments, such as the channel password, are not required. So to remove the +k that was set in the previous example, the following command is used:



/mode #channel -k



Settings modes on a specific user is very similar, except for the fact that another argument is required: the user to set the mode on. So to set mode +o on 'the_leet_irc_user':



/mode #channel +o the_leet_irc_user



And to remove op status:



/mode #channel -o the_leet_irc_user



| Registering a channel |



If you've tried to experiment with the modes, you'll find that you probably can't set them in any old channel. Rather, you need to register your own channel. To do that, first join a channel that is not yet registered with /j #channel. To register the channel, the register command is sent to ChanServ, which is the service in charge of channels. To do that, use the following syntax:



/msg chanserv register #channel password description_of_the_channel



That should be pretty straightforward, as you simply replace #channel, password, and description_of_channel with the appropriate values. That's all!



The following are more commands you might find useful whilst running a channel.



/kick - this kicks a user from the channel, but doesn't ban them



/kickban - this kicks *and* bans a user from the channel



/topic - the /topic command changes the current channel topic



/msg chanserv aop/hop #channel add user - this is used to decide which users should automatically be given op or hop when they join the channel. You can also replace 'add' with 'del' to remove them form the aop or hop list.



| That's All |



By now you should be pretty comfortable with the basics of IRC. One more command that it seems fitting should not be covered until the end is the /quit command. This disconnects you from the server. Hope you enjoyed this. Happy chatting!



| Shouts |



Shouts to mu(aka ~w(aka~1w1(aka wild(aka ordinary-tiger(aka mu-tiger))))), Subby, Edit, Zugg, Cryptic_Override, Ic3D4ne, dlab, ScM, Tele, Gate, R4d30n, and everyone else I forgot.



Written for Binary Universe

http://binaryuniverse.net

http://binaryuniverse.net/forums

irc.quickproxy.net #binaryuniverse
Comments?

-Niels

User avatar
SystemDownfall
Veteran
Posts: 600
Joined: Fri Feb 27, 2004 8:44 pm
Location: int(raw_input("Enter location here: "))
Contact:

Post by SystemDownfall » Tue Feb 08, 2005 9:29 pm

Pretty good irc noob tutorial. I beleive NoUse wrote one but I dont think it covered commands. Good Work
47.8 percent of all statistics are made up
---------------------------
http://www.blueoxidine.com
---------------------------
I heard there was a bonus underwater level in Windows. Supposedly its all blue with some white text.

User avatar
Prism
Owns you
Posts: 1618
Joined: Thu May 06, 2004 9:18 am

Post by Prism » Wed Feb 09, 2005 2:28 pm

Niels: I don't believe I've ever seen you on #hackerthreads

User avatar
Niels
Sargeant at Arms
Posts: 260
Joined: Wed Sep 01, 2004 12:31 am
Location: San Francisco
Contact:

Post by Niels » Wed Feb 09, 2005 8:08 pm

Prism wrote:Niels: I don't believe I've ever seen you on #hackerthreads
I've been there once or twice with the nick 'Ch4r'. I'll check it out some more though :wink:

-Niels

User avatar
GhostHawk
Ex-Mod
Posts: 1447
Joined: Wed Jul 30, 2003 12:10 am
Contact:

Post by GhostHawk » Thu Feb 10, 2005 8:34 am

Niels, i think your guide made everyone leave IRC. As soon as you posted it, the amount of people that go there cut in half.
Opinions are like ass holes, everyone has one. It is also my opinion, that I am an ass hole.

User avatar
Niels
Sargeant at Arms
Posts: 260
Joined: Wed Sep 01, 2004 12:31 am
Location: San Francisco
Contact:

Post by Niels » Thu Feb 10, 2005 6:30 pm

GhostHawk wrote:Niels, i think your guide made everyone leave IRC. As soon as you posted it, the amount of people that go there cut in half.
Lmao, my apologies :wink:

-Niels

g0ra
n1gg1337
Posts: 309
Joined: Sat Mar 27, 2004 4:35 am

Post by g0ra » Fri Feb 11, 2005 10:58 am

I agree that your tutorial does succesfully cover the basic concept of IRC, however I think that it does make a lot of assumptions and therefore isn't accurate. There are also a few things which I think you should elaborate upon, or change all together.

A few points for you to consider:
  • You assume that the reader will be using either Microsoft Windows or a particular distribution of Linux. You do not mention the Mac anywhere. Mention this!
  • Listing two of your personal favourite clients is in my opinion inadequate, and I would reccomend that you list a few more alternative clients for a variety of different operating systems.
  • You forget to highlight that there are a variety of different IRC daemons and obviously they differ. You need to state at the start of the article that the network / server you will be describing will be running a particular IRCd, and you need to make it clear that some networks will almost certainly operate differently. Mention this!
  • Services. Once again, there are a variety of different IRC services which use different syntax and not all networks utilize each service. Large networks such as EFnet do not use services at all. Mention this!
  • Channel and user modes differ from IRCd to IRCd. There are standard modes defined in RFCs, but there are IRCd specific modes also and you need to mention this. Take a look at the following: Channel modes | User modes
Your tutorial is very specific, describing a particular IRCd [ probably Unreal ] using a particular set of services [ most likely Anope ]. It isn't a bad thing if you want to be specific, but you must make it clear that not all servers and networks will operate the same.

User avatar
Prism
Owns you
Posts: 1618
Joined: Thu May 06, 2004 9:18 am

Post by Prism » Fri Feb 11, 2005 1:08 pm

You assume that the reader will be using either Microsoft Windows or a particular distribution of Linux. You do not mention the Mac anywhere. Mention this!
ircII is a decent CLI irc client that can be used on just about any unix platform, conversation is a pretty good gui client (very simple to use)

User avatar
Ramius
The Evil Clown
Posts: 1714
Joined: Fri Mar 26, 2004 8:47 pm
Contact:

Post by Ramius » Fri Feb 11, 2005 1:12 pm

I thought the Tut to be a good one. Thanks for the effort and time invested. Look forward to more of the same!

Many thanks,

Ramius
RIF - Reading is Fundamental
Hacking is a process, not a product
Http://www.rainbowtables.net

User avatar
B-Con
Challenge Winner [1x]
Posts: 2679
Joined: Thu Apr 22, 2004 4:19 pm
Location: UC Davis
Contact:

Post by B-Con » Fri Feb 11, 2005 4:30 pm

very nice job, simple and straight forward, just the way I like 'em ;) :D
- "Cryptographically secure linear feedback shift register based stream ciphers" -- a phrase that'll get any party started.

- Why know the ordinary when you can understand the extraordinary?

User avatar
Niels
Sargeant at Arms
Posts: 260
Joined: Wed Sep 01, 2004 12:31 am
Location: San Francisco
Contact:

Post by Niels » Fri Feb 11, 2005 7:37 pm

Thanks for the comments.

g0ra: I think I saw a similar post to yours at the ASO forums, must just be concidence ;)

Anyway, I will be revising it, with the points g0ra pointed out, and maybe adding a littel about the /list, /cycle, and various other commands.

-Niels

Post Reply