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
5
votes
2 answers

Basic IRC Server Protocol overview / tutorial

I have to develop my own IRC Server for a project for school. School does not require much and all i have to show them is a functioning irc server which accepts multiple connections and actually performs the basic tasks such as opening a room,…
T4u
  • 291
  • 2
  • 8
5
votes
1 answer

.net 2.0 IRC component

Anyone know of a good winforms IRC component? I don't want an IRC application, I want to be able to add IRC functionality to an existing windows form
Clint
5
votes
5 answers

Python IRC bot won't join

I get the error message :irc.evilzone.org NOTICE AUTH :* Looking up your hostname... :irc.evilzone.org NOTICE AUTH :* Found your hostname (cached) PING :7091A8FB :irc.evilzone.org 451 JOIN :You have not registered :irc.evilzone.org 451 PRIVMSG…
21days
5
votes
4 answers

How can I implement a simple IRC client in Perl?

I'm working on a tool that needs to send IRC messages to an internal IRC channel. This isn't a constantly running program, but rather a tool that will be invoked occasionally and needs to be able to notify the channel with a couple of messages when…
mpeters
  • 4,737
  • 3
  • 27
  • 41
5
votes
3 answers

Sending data received in one Twisted factory to second factory

I am trying to write a simple program using Twisted framework and I am struggling with resolving (or even with imaging how to write it) issue I couldnt find any relevant documentation for: The main reactor uses two factories, one custom, listening…
SpankMe
  • 836
  • 1
  • 8
  • 23
5
votes
3 answers

Good Example of Twisted IRC Server?

I'm in the process of experimenting a bit with the twisted libraries for IRC servers/clients. I've found a few good examples of how to implement an IRC client but seem to find anything good on the server side of things. Could anybody provide some…
themaestro
  • 13,750
  • 20
  • 56
  • 75
5
votes
1 answer

Connect to multiple IRC servers with ExIrc (Elixir)?

I would like to connect to two servers in ExIrc with elixir, and I cannot find an easy solution to do so. I am fairly new to elixir, and all that I can see that I can do is use 'umbrellas' to run two apps and have them interface with each other? (I…
desu
  • 113
  • 7
5
votes
3 answers

socket.error: [Errno 10054]

import socket, sys if len(sys.argv) !=3 : print "Usage: ./supabot.py " sys.exit(1) irc = sys.argv[1] port = int(sys.argv[2]) sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sck.connect((irc, port)) sck.send('NICK…
SourD
  • 2,771
  • 7
  • 28
  • 28
5
votes
1 answer

Windows Phone 8.1 IRC

I've been trying to make an IRC client for my Windows Phone 8.1 app, and I was lucky enough to find a really good tutorial. Unfortunately the tutorial was for WP 7 and as of WP 8.1 MS changed it to runtime apps, meaning SocketAsyncEvents is…
Jazerix
  • 4,729
  • 10
  • 39
  • 71
5
votes
3 answers

My Ruby IRC bot doesn't connect to the IRC server. What am I doing wrong?

require "socket" server = "irc.rizon.net" port = "6667" nick = "Ruby IRC Bot" channel = "#0x40" s = TCPSocket.open(server, port) s.print("USER Testing", 0) s.print("NICK #{nick}", 0) s.print("JOIN #{channel}", 0) This IRC bot doesn't connect to…
JavaNoob
  • 69
  • 2
  • 3
5
votes
2 answers

Internet chat service like IRC but with message history

I've finally given up using Facebook messaging, I find it slow and clunky - however it is extremely useful in that if I am offline and someone sends me a message it pops up when I log back in. I converted to an IRC channel and want to use it as a…
GPPK
  • 6,546
  • 4
  • 32
  • 57
5
votes
1 answer

IRC bot in python won't send messages

I'm using Phredds Irc bot because I am trying to make a bot for my twitch chat. It connects and responds to pings fine but it won't respond to anything else. I seem to be doing exactly what he did in the pastebin so what is wrong with this? …
TheMagicalCake
  • 309
  • 1
  • 6
  • 13
5
votes
1 answer

Hubot hangs/freezes when launching

I am able to get Hubot to work when running in the command line. However, when I try and connect it to a grove.io it seems to 'hang' or 'freeze'. I get just two lines: [Fri Feb 07 2014 18:23:43 GMT+0000 (UTC)] WARNING The HUBOT_AUTH_ADMIN…
5
votes
1 answer

Yield does not work, but return does

I'm making a Python irc bot. For some reason the yield statement in my join() method makes it skip the method altogether, but if I replace it with a return it works fine. However, I need to yield an error per each unsuccessful join attempt. I have a…
user2878309
  • 131
  • 1
  • 6
5
votes
2 answers

Looking for a pure PowerShell IRC client

I'm looking for a IRC client library/script written in PowerShell. The goal is to replace a Perl script that uses Net::IRC to communicate with a MindAlign channel. SmartIrc4net will do in a pinch, but I'd rather have a pure implementation for…
Scott Weinstein
  • 18,890
  • 14
  • 78
  • 115