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
2
votes
1 answer

TwitchIO: How to send a chat message?

Is there a way to send a message via the TwitchIO library? for example, send a message if the time is 10:43 PM? This is not an event nor a message from twitch chat, that's an if/else totally invoked from within the application. I tried the code…
A.R.H
  • 383
  • 2
  • 6
  • 25
2
votes
1 answer

WPF-App unsuable when using IRC-Client in Twitch [C#]

I want to set up my own TwitchBot with a nice User-Interface. But I ran into some troubles: I am sorry about the formatting, but it doesn't copy it from Visual Studio nicely and formatting here seems horrible. public class IrcClient { …
Max
  • 103
  • 7
2
votes
1 answer

python irc bot trying to consume two different messaging system

I'm using the python irc module [1] and the pika module in python to create an irc bot that listens to both channel messages and to a rabbitmq queue. I took the source code from [2] and added the pika elements to it: #! /usr/bin/env python # #…
ewokx
  • 2,204
  • 3
  • 14
  • 27
2
votes
1 answer

IRC protocol message formatting

I've been searching for a while, but I can't seem to find the message formatting of the IRC protocol. For example, if I wanted to enter a channel, the client might send "enter channelname nick" or something along those lines. Does anyone know?
ConsciousCode
  • 563
  • 4
  • 18
2
votes
1 answer

socket.gaierror: [Errno 11003] getaddrinfo failed

if data.find('!scan') != -1: nick = data.split('!')[ 0 ].replace(':','') targetip = socket.gethostbyname(str(arg)) sck.send('PRIVMSG ' + chan + " :" ' scanning host' + targetip + '\r\n') for i in range(20, 1025): s = socket(AF_INET,…
SourD
  • 2,771
  • 7
  • 28
  • 28
2
votes
2 answers

IRC BOT (python)

sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sck.connect((irc, port)) sck.send('PRIVMSG ' + 'NICKSERV' + 'ghost' + 'supaBOT' + 'htown') sck.send('NICK supaBOT\r\n') sck.send('PRIVMSG ' + 'NICKSERV' + 'IDENTIFY' +…
SourD
  • 2,771
  • 7
  • 28
  • 28
2
votes
1 answer

UnrealIRCd or InspIRCd

I am the manager of a small IRC server of 100-300 simultaneous connected users since now 8 years, I am under UnrealIRCd. I see many competitors replacing their UnrealIRCd by InspIRCd and I would like to understand why they do that? What are the…
jacke
  • 59
  • 1
  • 9
2
votes
2 answers

Webapp that causes browser to issue an alert?

I am not sure exactly how to ask this question as I am not sure of the terminology I should use. I am writing a web application that is essentially a browser based IRC client. I wish to replicate some functionality I see in clients like x-chat where…
Exodist
  • 629
  • 5
  • 15
2
votes
1 answer

Clearing needless text from IRC Server input

I'm making a simple IRC client for myself because I really don't see the need for a lot of mIRC's functionality, but I'm having problems cleaning up the input from the server. Right now, on connect, I'm getting the following: [16:37]…
Ortund
  • 8,095
  • 18
  • 71
  • 139
2
votes
1 answer

Match IRC Channel with regular expression

How would one go about using regular expressions to match IRC channel names? The names would have the preceding hash symbol (#) included.
Mark Szymanski
  • 56,590
  • 24
  • 70
  • 87
2
votes
1 answer

Request for IRC URI Scheme for HTML Purifier 4.2.0

Can someone help me to establish using IRC URI Scheme for HTML Purifier 4.2.0? I can't seem to figure out how to configure or which files to modify so that purified html allows for irc:// links. Is it possible I can simply modify configuration…
Miz
  • 21
  • 3
2
votes
2 answers

How to handle blocking read() call when reading from a socket?

I'm writing a simple IRC client program in C for self-teaching purposes, and am having trouble understanding the behavior of the read() function when called reading from a socket file descriptor. The following code snippet works and prints the same…
sleighty
  • 895
  • 9
  • 29
2
votes
3 answers

How do I change the color of links in mIRC?

In mIRC I want all links to look like html links (blue with an underline) so they stick out in channels and messages. I'm sure I have to write a remote script but I'm not sure what the code would be.
Jamie Taniguchi
  • 387
  • 4
  • 13
2
votes
1 answer

Twisted python IRC logging

I'm making an IRC bot which will log the hostname of a user that just joined the channel, and then log it to a file. The method I'm trying to do this in, is perform a whois command, and eventually it will seperated the hostname, then resolve it to…
Felix
  • 25
  • 3
2
votes
1 answer

How to make my script continuously check a variable?

I'm working on a PHP IRC bot. Currently I'm using a while fgets(... loop to keep it listening for data and responding. At some point while I was asleep, it actually "pinged out" and stopped getting data, without any sort of error message that I…
Rob
  • 7,980
  • 30
  • 75
  • 115