Questions tagged [irc]

IRC - Stands for Internet Relay Chat is an internet based chat protocol. Main idea is to have users connect to a server network, where they can then send messages to each other through channels or direct chat. Today there's quite a few different networks, usually each with a main thematic. Stack Overflow got its own channel on the FreeNode network. You can read more about that on the full tag wiki page.

Overview

IRC is an internet chat protocol, first written in 1988. It bascially features IRC servers organized into networks, where an user can send message to other ones. The main feature is the channels that users can join, much like other chat rooms.

Network infrastructure and protocol

A network is generally made of several different servers, linked together through the same IRC protocol, where users and channels are common. Usually, just joining an empty channel will automatically create it, although this might not be the case everywhere. The IRC protocol also features moderators of different levels and channel options, although this has been found to be too weak for general use. Most IRC Networks now feature IRC Services, that enable someone to configure and protect channels in greater detail.

The IRC protocol only uses plaintext, as opposed to XMPP for example that uses XML style, and is therefore very simple to parse and use. Because of the lack of security of this approach, it's now usually used along a SSL connection. A typical IRC query is of the form: :origin KEYWORD contents - with the origin and contents sections being optional : a query could be as much as "LIST" to get a list of current network channels.

The server connection process is also very simple: the user only has to send out information about desired nickname, username, and displayed real name, before being able to use the network. Because of that, there has been quite a few implementation of IRC Bots and scripting platforms for various uses (EG. Eggdrop, Supybot, or simply home-made applications)

One of the big loopholes in the IRC protocol as described by RFC1459 is that it does not specify the use of character encoding past the 7-bit ASCII representation. Channels and users have been known to mostly use either utf-8 or latin-1 (iso8856-1). There's no shortage of problems made by bad software utf-8 parsers, to the extent of being able to crash people's client at will.

Stack Overflow IRC channel

Stack Overflow has an IRC channel on the FreeNode network (irc.freenode.net), #stackoverflow You could join it either by inputing above info in an IRC client, using This kind of browser link, or using a JS Web Applet such as FreeNode's QIRC. FreeNode is also the home of hundreds of community projects, especially open source ones.

More information

Detailed informations about the IRC protocol can be found into the IETF related RFCs, the initial one being RFC1459. Additions were later made, although some of these remain un-supported to this date.

Some popular IRC clients include:

Many other applications such as GNOME's Empathy, or Pidgin, also come with builtin IRC support.

1108 questions
4
votes
2 answers

Running an IRC bot under current nick?

I'm developing my own irc bot and in a channel I'm in, one of the ops is able to activate a bot but run it under his own nick without a new nick joining the channel. For example, guy's nick is @James and he activated a bot that says hello when you…
4
votes
2 answers

Confusion about the 005 IRC numeric and general RFC

After rading through the most recent IRC RFC I've gotten a bit confused, the RFC states, under section 5.1 that response 005 is used for a bounce message, but whenever I connect to an IRC server, the 005 numeric response is used for ISUPPORT, as…
Martinnj
  • 579
  • 1
  • 5
  • 21
4
votes
1 answer

Adding SASL Auth in IRC Bot

How could i add sasl authentication on my Lua 5.1 IRC Bot? Right now it sends a message to Nickserv to identify. Is there any way at all to add SASL authentication? I use the lua socket module to connect to IRC. The complete source can be found at…
wolfy1339
  • 784
  • 2
  • 7
  • 23
4
votes
1 answer

Identify with services-IRC

I used to hangout at #RubyOnRails in freenode. i have no previous experience with IRC ,michael hartl's tutorial lead me there.For past few weeks when i try to join the channel ,i get this issue NickServ- This nickname is registered. Please choose a…
ashkar
  • 300
  • 1
  • 9
4
votes
2 answers

Upgrading socket to SSLSocket with STARTTLS: recv failed

I am trying to upgrade a socket to an SSLSocket using STARTTLS. On InspIRCd's wiki this is how its supposed to work >> STARTTLS << :test2.chatspike.net 670 nickname :STARTTLS successful, go ahead with TLS handshake (SSL Handshake) So in my code…
TheLQ
  • 14,830
  • 14
  • 69
  • 107
4
votes
1 answer

Python IRC 8.1.1 Invalid Syntax Error with class Connection(object, metaclass=abc.ABCmeta)?

In Python, when trying to use irc-8.1.1's example program irccat2.py, I get this error. I can't find it documented anywhere online. Does anyone know what this means, and how I can fix it? Thank you. Traceback (most recent call last): File…
4
votes
0 answers

xchat Connection failed. Error: An attempt was made to access a socket in a way forbidden by its access permissions

Idk the problem if anyone of you can help me then I'll be thankful to you. As I do regularly I open my xchat (irc client) and then when I select frrenode to connect then I am getting this crappy error. I try to connect with other irc to and I got…
Yush
  • 53
  • 5
4
votes
5 answers

Python IRC client: write from scratch or write plugin for existing framework?

For our company I'd like to have a Python based IRC bot which checks whether the websites of our clients are still up and running. More specific: I want to list a number of URL which should be visited every, say, 15 minutes. If it fails, the URL…
Mark van Lent
  • 12,641
  • 4
  • 30
  • 52
4
votes
3 answers

Java irc library

I'm creating an Swing GUI, I want to include a irc client into the JFrame. So I'm looking for a library that I could easily set up and put in a JPanel. But all I can seem to find on google are applets which run in your browser.
Reinard
  • 3,624
  • 10
  • 43
  • 61
3
votes
1 answer

Downloading files using DCC

I found a very nice library written in Java to create the an IRC client in Java but I can't find any information regarding the DCC download option. I'm looking for anybody that can link me article/tips/source code on how to handle this. Definition…
Dax
  • 2,185
  • 2
  • 21
  • 20
3
votes
2 answers

Match IRC channel with regular expression (RFCs 2811-2813)

I know this question has been answered in accordance with RFC 1459. But how would one go about using regular expressions to match channels in accordance with RFCs 2811-2813? RFC 2811 states: Channels names are strings (beginning with a '&', '#',…
quentinxs
  • 866
  • 8
  • 22
3
votes
4 answers

Python IRC bot and encoding issue

Currently I have a simple IRC bot written in python. Since I migrated it to python 3.0 which differentiates between bytes and unicode strings I started having encoding issues. Specifically, with others not sending UTF-8. Now, I could just tell…
cwj
  • 2,473
  • 5
  • 28
  • 38
3
votes
2 answers

Check if user is 'voiced' or 'op' in IRC channel using twisted

I'm writing an IRC bot using twisted python, and some actions should only be available to channel operators. How do I determine the 'user level' of a user in a channel using twisteds IRCClient?
ojii
  • 4,729
  • 2
  • 23
  • 34
3
votes
2 answers

Python twisted: Functions are not called properly?

I've got a problem with setting up a client which connects to a "distributor" server to send certain data. The server's purpose is to get data from the client and then send that data to it's all connected clients. The server works without any…
Longdouble
  • 33
  • 5
3
votes
2 answers

Is there a semi-standard way to associate a URL with an IRC user?

I'm in the process of doing some identity consolidation, so I'm providing URLs to me at various locations on the internet. I'm quite active on IRC, so this naturally lead me to wonder whether there was a way to provide a link to my IRC presence.…
DRMacIver
  • 2,259
  • 1
  • 17
  • 17