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

IRC Intro

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

IRC Intro

Avatar for christiekoehler

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