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
11
votes
4 answers

Embed mIRC Color codes into a C# literal?

I'm working on a simple irc bot in C#, and I can't figure out how to embed the typical mirc control codes for bold/color etc into string literals. Can someone point me towards how to do this?
FlySwat
  • 172,459
  • 74
  • 246
  • 311
11
votes
6 answers

IRC Python Bot: Best Way

I want to build a bot that basically does the following: Listens to the room and interacts with users and encourages them to PM the bot. Once a user has PMed the bot engage with the client using various AI techniques. Should I just use the IRC…
Noah Clark
  • 8,101
  • 14
  • 74
  • 116
11
votes
1 answer

Detecting when a user leaves or enters a channel with hubot

I am trying to make Hubot detect when a user enters or leaves a channel, but so far I have been unable to actually find ANY information pertaining to this. Does anyone have any ideas of how to do this? :) Thanks in advance!
Olive
  • 3,516
  • 7
  • 24
  • 32
10
votes
2 answers

Buffers per frame

Is it possible to have get subset of related buffers with each emacs frame when switching and displaying buffers I mean A frame that is dedicated for GNUS will show only gnus buffers A frame that is dedicated for ERC will show only erc buffers A…
Sharad
  • 437
  • 1
  • 5
  • 17
10
votes
2 answers

I am looking for a JavaScript IRC client

http://sourceforge.net/projects/jisirc/ is exactly what I need, only problem is it has multiple ActiveX dependencies and that will not do. Does anyone know of any similar projects which are more portable?
Sean A.O. Harney
  • 23,901
  • 4
  • 30
  • 30
9
votes
3 answers

IRC USER message makes no sense to me

First, please tell me if I'm not allowed to ask about this protocol here... It just seemed like the best place. Sorry if I'm wrong. So according to wikipedia the USER message goes like the following: USER username hostname servername…
pajm
  • 1,788
  • 6
  • 24
  • 30
9
votes
2 answers

Auto-join all currently open channels in Irssi

Is there a way to tell Irssi that I want to auto-join all of the channels that are currently open? I want something like: /channel add -auto /save
earldouglas
  • 13,265
  • 5
  • 41
  • 50
8
votes
6 answers

How to strip color codes used by mIRC users?

I'm writing a IRC bot in Python using irclib and I'm trying to log the messages on certain channels. The issue is that some mIRC users and some Bots write using color codes. Any idea on how i could strip those parts and leave only the clear ascii…
daniels
  • 18,416
  • 31
  • 103
  • 173
8
votes
5 answers

Python & parsing IRC messages

What's the best way to parse messages received from an IRC server with Python according to the RFC? I simply want some kind of list/whatever, for example: :test!~test@test.com PRIVMSG #channel :Hi! becomes this: { "sender" : "test!~test@test.com",…
tt
8
votes
3 answers

IRC client in python

I'm writing python code for IRC client. I want to understand how IRC client and server communicating each other. Can anyone give me good tutorial or IRC communication architecture to understand it in depth? Thanks
Ha-eun Chung
  • 455
  • 1
  • 7
  • 20
8
votes
12 answers

Connection timing out when connecting to an IRC server with PHP

I'm trying to connect my PHP script to IRC, but it keeps timing out. I'm on the server, so I know it's up and running, I can't tell what the problem is. Could it be an error in my code?
Rob
  • 7,980
  • 30
  • 75
  • 115
8
votes
3 answers

Building an IRC bot in Java

After some googling an obvious answer or starting point for a Java IRC bot has not presented itself, my question; is there an existing framework to help me do build an IRC bot? Failing that, is this possible using Sockets in Java to do this and has…
Waltzy
  • 1,113
  • 4
  • 14
  • 31
8
votes
2 answers

Python, recreate a socket and automatically reconnect

I'm writing a IRC bot in Python. Source: http://pastebin.com/gBrzMFmA ( sorry for pastebin, i don't know how to efficently/correctly use the code tagthing on here ) When the "irc" socket dies, is there anyway I could go about detecting if its dead…
Pro Fessor
  • 81
  • 1
  • 1
  • 3
7
votes
2 answers

Detect if IRC user is a "voice" or higher [C# irc bot]

I have a command that I want to restrict only to certain ranks. I'm using unreal3.2.6 IRC. I read this: But I still am not sure what I can do to check the users rank. I want to see if the user is a "Voice" or higher. What could look up a user, and…
Kyle
  • 3,004
  • 15
  • 52
  • 79
7
votes
1 answer

Gracefully shut down a TCP socket

I'm writing an IRC client in C++ and currently I'm having an issue where, upon exit, I do: Send("QUIT :Quit\r\n"); // just an inline, variadic send() wrapper shutdown(m_hSocket, SD_BOTH); closesocket(m_hSocket); WSAShutdown(); However, the issue…
Saul
  • 992
  • 1
  • 13
  • 26
1
2
3
73 74