This is G o o g l e's cache of http://www.daemonnews.org/199907/irchack.html.
G o o g l e's cache is the snapshot that we took of the page as we crawled the web.
The page may have changed since that time. Click here for the current page without highlighting.
To link to or bookmark this page, use the following url: http://www.google.com/search?q=cache:KbSkUxI7DV0C:www.daemonnews.org/199907/irchack.html+irc+protocol&hl=en&ie=UTF-8


Google is not affiliated with the authors of this page nor responsible for its content.
These search terms have been highlighted: irc protocol 

Daemon News 199907 : IRCing with TELNET - Understanding IRC Protocol
Monthly Columns
 

IRCing with TELNET - Understanding IRC Protocol

Copyright © 1999 ech0 Security

Too lazy to read the RFC? Well, this is the "SUMMARY" of RFC1459 on the IRC Protocol.

Hopefully after reading this you'll have a better understanding of how the protocol works. (Hey, don't just use it, try to understand how it works!) Yeah, this is also how some people spoof their IP by telneting from a restricted shell account with no IRC client access.

Connecting to the IRC Daemon

Telnet/netcat (Yep, it's using raw socket) to the IRC port (6667/6668) of the IRC server.

eg : telnet irc.dal.net 6667
Send your nick & username to be recognized after you get connected using the user command in this form:
user <username> <hostname> <servername> <realname>
eg : user nobody localhost localhost :I'm nobody nick nobody

NOTE:

At any time you receive anything like this:

ping :1234567 <-- The sequence number changes all the time
or
ping :192.0.0.1 <-- Some IP address
you must send back the number with a pong:
pong :1234567
or
pong :192.0.0.1
If you don't "pong" back, you'll be disconnected with a "ping timeout" error.


Exploring Some Basic Commands

Ok, after the nick & user commands you can start chatting. Type:

join #channel (Without the '/') to join #channel.

Most commands you use in your BitchX or mIRC client can be used here too... Just don't include the '/':

eg: part #channel
quit :I'm out
etc...

To send your message to a channel, use the privmsg command:

eg : privmsg #channel : Hi guys...Sup?

(Don't forget the ":" if you are going to send more then one message)

This will send "Hi guys...Sup?" to #channel

To send a private message to a user:

eg : privmsg nickname : HI ya
This will send "HI ya" to nickname.


Fun Stuff to Do

If you get something like this:

:nick!user@ip-address PRIVMSG your-nick :VERSION

This means that nick sent A 'ctcp/version' request to you. Send the version back using the NOTICE command. It could be anything you want:

eg : NOTICE nick : VERSION Telnet version 0.1 :)
This will send "Telnet version 0.1 :)" as the version reply.

by ech0 Security (c) 1998-1999

CKS, cksss@singnet.sg.com
ech0 Security ech0@net-security.org