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

Can a browser-based IRC client communicate with an IRC server directly?

Is it possible for a browser-based irc client to work without using any gateway, that is, to communicate with the irc sever directly?
user306694
7
votes
1 answer

Why does my IRC bot not connect?

public static string SERVER = "irc.rizon.net"; private static int PORT = 6667; private static string USER = "Test C# Irc bot"; private static string NICK = "Testing"; private static string CHANNEL = "#Test0x40"; public static void Main(string[]…
Mr. Sharp
  • 71
  • 2
7
votes
1 answer

How can I write colored text to an IRC channel with Irssi?

I'm searching for a method to write a text with different colors like I always saw on other IRC channels. I want to achieve this with Irssi which is CLI based. I have found multiple methods which didn't work as expected. How can I for example…
rsz
  • 1,141
  • 1
  • 18
  • 38
7
votes
3 answers

Node.js JavaScript: Simulate Keypress on Server (Like a Macro)

I am trying to get a node.js script to simulate a keypress, such as the up arrow or the a button. Specifically, I am trying to make a clone of Twitch Plays Pokemon. Basically, whenever a command (up, down, left, right, a, b, select, start) is sent…
Nimaid
  • 321
  • 2
  • 3
  • 9
6
votes
3 answers

Trying to write an IRC client but struggling to find a good resource regarding codes and connection protocol

I've looked at the RFC but I am still struggling. I've written a basic client in C# but I cannot find documentation for how to connect properly. Once I connect and transmit NICK and USER information, I need to join a channel. If I do a JOIN straight…
NibblyPig
  • 51,118
  • 72
  • 200
  • 356
6
votes
4 answers

Load/reload a portion of code in Python without restarting main script

Intro I've been tinkering with Twisted for the past few days, having picked up python less than a month ago. My first inclination was to play with something I know and use every day, IRC. I've gotten a basic IRC connection up and running thanks to…
frontendloader
  • 365
  • 4
  • 12
6
votes
1 answer

List users in IRC channel using Twisted Python IRC framework

I am trying to write a function that will print the lists of nicks in an IRC channel to the channel using Twisted Python. How do I do this? I have read the API documentation and I have only seen one question similar to mine on this site, but it…
paul
  • 61
  • 1
  • 2
6
votes
1 answer

How to write and send text to mIRC in C#/Win32?

In a previous question, I asked how to send text to Notepad. It helped me immensely. For part 2, here's a simplified version of the same applied mIRC: [DllImport("User32.dll", EntryPoint = "FindWindow")] public static extern IntPtr…
lolcat
  • 645
  • 2
  • 7
  • 12
6
votes
1 answer

Regular expression to match IRC nickname

How would I use a regular expression to match an IRC nickname? This is being done in Ruby if that makes a difference (it probably will, with the syntax of the regex, but who knows.) EDIT: An IRC nickname can contain any letter, number, or any of the…
Mark Szymanski
  • 56,590
  • 24
  • 70
  • 87
6
votes
3 answers

IRC Bot: Error - Registration Timeout

I'm making a simple IRC Bot in C. And I finally got the bot connecting and receiving information. My code is supposed to be sending as well, but the server is acting as if it is not sending anything. When The bot connects, I receive this: Recieved:…
The.Anti.9
  • 43,474
  • 48
  • 123
  • 161
6
votes
1 answer

What's an idiomatic way of handling a lazy input channel in Haskell

I am implementing an IRC bot and since I am connecting over SSL by using OpenSSL.Session I use lazyRead function to read data from the socket. During the initial phase of the connection I need to perform several things in order: nick negotiation,…
egdmitry
  • 2,071
  • 15
  • 18
6
votes
2 answers

Best tutorial for application multicasting?

I've recently become aware that there's a distinction between IP multicasting (which apparently doesn't work that well on the public internet) and application multicasting (which is apparently used in IRC and PSYC, per…
Jeremy Dunck
  • 5,724
  • 6
  • 25
  • 30
6
votes
5 answers

What's the right way to kill child processes in perl before exiting?

I'm running an IRC Bot (Bot::BasicBot) which has two child processes running File::Tail but when exiting, they don't terminate. So I'm killling them using Proc::ProcessTable like this before exiting: my $parent=$$; my…
rarbox
  • 486
  • 5
  • 14
6
votes
3 answers

CTCP raw protocol ACTION command with in c#

I was making a bot to connect to an irc for kicks and giggles and i was making it respond to different things, but i would like it to respond with the CTCP ACTION command, this is commonly known to a user as /me used for role playing or displaying…
A'sa Dickens
  • 2,045
  • 1
  • 16
  • 21
5
votes
3 answers

A simple Python IRC client library that supports SSL?

A simple Python IRC client library that supports SSL?
flybywire
  • 261,858
  • 191
  • 397
  • 503
1 2
3
73 74