Date post: | 18-Nov-2014 |
Category: |
Technology |
Upload: | christie-koehler |
View: | 235 times |
Download: | 0 times |
IRC How-ToCode 'n' Splode - Sept 2012
Agenda● Welcome● Introductions● Announcements● Talk● Questions● 'Splode!
What is IRC?● Internet Relay Chat● Multi-user chat system● Users participate in group chat via
"channels" or communicate privately● Constantly evolving● It's simplicity makes it powerful● There are many, many chat networks
IRC History● Written by Jarkko Oikarinen, a BBS admin
at University of Oulu in Finland● First released August 1988● Needed an improvement for existing talk
feature● Modeled after Bitnet Relay for BITNET● Many specifications: RFC 1459, RFC 2810-
13, but none are official
Tech Details● Text-based, client-server protocol● Uses TCP, typically on port 6660-6669 and
7000 (officially assigned port 194)● Each message and reply is a single line● Each chat network has at least 1 server, but
can have many (in a tree structure)
Raw IRC Messages<< JOIN #codensplode IegaThai4>> :christiek!~christiek@pdpc/supporter/active/christiekoehler JOIN #codensplode<< MODE #codensplode<< WHO #codensplode>> :pratchett.freenode.net 332 christiek #codensplode :http://cat-shaming.tumblr.com/>> :pratchett.freenode.net 333 christiek #codensplode [email protected] 1345957605>> :pratchett.freenode.net 353 christiek @ #codensplode :christiek addiemew_ ephany1 kcomandich spinnerin skgolden akfarrell reidab>> :pratchett.freenode.net 366 christiek #codensplode :End of /NAMES list.>> :pratchett.freenode.net 315 christiek #codensplode :End of /WHO list.>> :services. 328 christiek #codensplode :http://codeandsplode.org
Raw IRC Messages<< JOIN #codensplode IegaThai4>> :christiek!~christiek@pdpc/supporter/active/christiekoehler JOIN #codensplode<< MODE #codensplode<< WHO #codensplode>> :pratchett.freenode.net 332 christiek #codensplode :http://cat-shaming.tumblr.com/>> :pratchett.freenode.net 333 christiek #codensplode [email protected] 1345957605>> :pratchett.freenode.net 353 christiek @ #codensplode :christiek addiemew_ ephany1 kcomandich spinnerin skgolden akfarrell reidab>> :pratchett.freenode.net 366 christiek #codensplode :End of /NAMES list.>> :pratchett.freenode.net 315 christiek #codensplode :End of /WHO list.>> :services. 328 christiek #codensplode :http://codeandsplode.org
Thankfully, you don't have to type these commands...
...unless you only ever want to use telnet.
Terminology● Network● Client● Channel● Operator● Channel Operator● Commands
Network● Consists of at least one server, but can
consist of many servers in a spanning tree.● What your client connects to so that you can
chat with others.● Each server in the tree is running IRC
daemon software.● In a multi-server network, two users don't
have to be on the same server to chat with one another.
Client● Anything that connects to an IRC network
that isn't a server.● Includes your chat program and bots as well. ● Each client must be uniquely identified.● Messages to clients are transmitted through
the server (no need for direct connection).
Channel● A "room" that users can join and chat as a
group.● Messages sent to a channel are seen by all
who have currently joined that channel.● Channel names are unique and usually
prefixed with hash character (#).● Channels are created when the first user
joins the channel and destroyed when the last user leaves.
Operator● A client with special privileges on a network.● Help maintain the network by adding and
removing servers; adding, removing and banning (if necessary) other clients, etc.
Channel Operator● A client with special privileges on a channel.● Help maintain the channel by removing
disruptive clients, setting the topic and changing channel settings (like keywords).
● If you are the first to join a channel, you are often made its operator automatically.
Commands● Commands are how clients interact with
servers.● Prefixed with a forward-slash (/).● They often take one or more arguments.● On most networks you can issue the help
command for more info about any command○ /help○ /help <command>
● Can usually run commands for one channel while in another by specifying other channel.
Let's Connect!Freenode:
chat.freenode.netSSL enabled, port 6697, 7000 or 7070
List of location specific servers:http://freenode.net/irc_servers.shtml
Basic Commands● Get list of channels
○ /list○ /list -min 30○ note: not recommended for large networks
● List who is in a channel○ /who○ /who #channel
● Get info about a user○ /whois nick
● Change your nickname○ /nick newnick
Basic Commands● Join a channel
○ /join #channel○ /join #channel keyword
● Leave (part) a channel○ /part○ /part #channel
● Invite someone to a channel:○ /invite nick #channel
● Set away status (message optional)○ /away message
● Set returned status○ /back
Basic Commands● Send a private message
○ /msg nick message● Open privmsg window to a user
○ /query nick● Actions
○ /me description of action○ produces "christiek does something"○ always in the third person
● Ignore a user○ /ignore hostmask types options○ some networks use nick, freenode uses hostmask
Register with NickServ● NickServ is a service that helps manage
clients on IRC networks.● Registering with NickServ preserves your
nickname and is often required to do things like join channels with keywords.
● To register, enter this once:○ /msg NickServ REGISTER password
[email protected]● On subsequent connects, enter:
○ /msg NickServ IDENTIFY password● Record your password in a safe place!
Register with ChanServ● Like NickServ, ChanServ is a service that
helps maintain channels on IRC networks.● Registering your channels with ChanServ
links you with the channel and provides a mechanism for recovering the channel should it be taken.
● Usage:○ /msg ChanServ register <channelname>
<password> description_of_channel● Record that password in a safe place!
Items not covered...● Channel management● Bouncers● Bots● DCC and filesharing● Operating an IRC network
Thank you!Questions? Get in touch!Christie KoehlerTwitter: christiekoehlerFreenode: [email protected]