Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IRC Intro

IRC Intro

christiekoehler

September 25, 2012
Tweet

More Decks by christiekoehler

Other Decks in Technology

Transcript

  1. 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
  2. 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
  3. 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)
  4. Raw IRC Messages << JOIN #codensplode >> :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 akfarrell!~afarrell@www. amykfarrell.com 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
  5. Raw IRC Messages << JOIN #codensplode >> :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 akfarrell!~afarrell@www. amykfarrell.com 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.
  6. 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.
  7. 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).
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. Let's Connect! Freenode: chat.freenode.net SSL enabled, port 6697, 7000 or

    7070 List of location specific servers: http://freenode.net/irc_servers.shtml
  13. 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
  14. 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
  15. 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
  16. 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!
  17. 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!
  18. Items not covered... • Channel management • Bouncers • Bots

    • DCC and filesharing • Operating an IRC network