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

Open source Facebook-like Chat (with Jabber or IRC)

Like Mini Jappix but without the big application server behind. Is there one ? Best would be if it's integrated with Ruby On Rails, but not required at all.
Dorian
  • 22,759
  • 8
  • 120
  • 116
3
votes
3 answers

How to link IRC and Google Talk?

I am looking for a way to link IRC to Google Talk. At the moment we use Partychatapp for google talk and we'd like to find a way to migrate to using IRC. The vision is to have everyone in an IRC room and we'd be able to have a google talk bot people…
RJO
  • 31
  • 1
  • 1
  • 2
3
votes
4 answers

AJAX IRC client, how?

I want to build a IRC client in Javascript, maybe using jQuery, but I am struggling a little in getting started. I have looked a little at http://qwebirc.org/ and how they are doing things, but they have A LOT of code doing specific things only to…
Lars Jensen
  • 31
  • 1
  • 2
3
votes
2 answers

How to set up CIAbot for github repository

As in the title, I want to know how to set up the CIAbot for a github repository.
Wazery
  • 15,394
  • 19
  • 63
  • 95
3
votes
1 answer

urllib2.HTTPError: HTTP Error 500: Internal Server Error

if data.find('!exploits') != -1: nick = data.split('!')[ 0 ].replace(':','') results = api.exploitdb.search(arg) sck.send('PRIVMSG ' + chan + " :" + ' Results found: %s' % results['total'] + '\r\n') for exploit in…
SourD
  • 2,771
  • 7
  • 28
  • 28
3
votes
1 answer

How to use fsockopen (or compatible) with SOCKS proxies in PHP?

I've coded a non-evil, non-spammy IRC bot in PHP, using fsockopen and related functions. It works. However, the problem is that I need to support proxies (preferably SOCKS5, but HTTP is also OK if that is somehow easier, which I doubt). This is not…
user11003203
3
votes
1 answer

IRC (RFC 1459) message prefix

This question seems fairly pedantic, however it feels reasonably important when trying to follow the RFC. I am trying to write an IRC client and I am using the RFC to follow how the protocol should be written. I came across the section for message…
JamoBox
  • 764
  • 9
  • 23
3
votes
0 answers

How to use certfp with IRC::Client

I've used IRC::Client for a number of IRC bots so far, and I would like to use it for a new project too. However, this time I will need to have the bot authenticate using certfp. A search for "certfp" on the module's GitHub repository yields no…
Tyil
  • 1,797
  • 9
  • 14
3
votes
1 answer

Error in constructor: couldn't execute "git": no such file or directory

Ok, so I am setting up a modified eggdrop bot, but after getting all the required perl modules and libraries, I am getting this error: sudo perl run-test Running bot 18076 tcltest Error in constructor: couldn't execute "git": no such file or…
DanielBryan
  • 131
  • 2
  • 2
  • 5
3
votes
1 answer

"Registration timeout" on very basic Python IRC bot

I am building a very basic Python BOT in Python 3; Mostly feeding off several manuals and tutorials since I am just learning the language. My issue right now is connecting into the server, all I receive is the following: :ircserver NOTICE * :***…
Markski
  • 149
  • 1
  • 8
3
votes
1 answer

How to receive files with python IRC bot?

I've created a semi-functional IRC bot in python from the following sample code: import socket import time import random import os def stringToBytes(s): blit = "" for char in s: blit += char return bytes(blit, "UTF-8") server =…
Slat
  • 31
  • 2
3
votes
2 answers

IRC-Bot in Ruby: PRIVMSG sends only last word of string

I'm on learning ruby and I took a already done IRC-Bot from the web which just connects to a given serven and not much more. Then I added some features (in my case I try to implement a voting where to eat lunch). Now these work fine so far but I…
m_sc
  • 154
  • 7
3
votes
1 answer

.NET based IRC Server

Is there currently an IRC Server (not Services) written in .NET? One of my coworkers had never used IRC before, or heard of it, which surprised me because he is familiar with Jabber and other messaging protocols. Wanted to show him how simple the…
Brett Allen
  • 5,297
  • 5
  • 32
  • 62
3
votes
5 answers

How can I implement an IRC Server with 'owned' nicknames?

Recently, I've been reading up on the IRC protocol (RFCs 1459, 2810-2813), and I was thinking of implementing my own server. I'm not necessarily looking into adhering religiously to the IRC protocol (I'm doing this for fun, after all), but one of…
FreeMemory
  • 8,444
  • 7
  • 37
  • 49
3
votes
4 answers

PHP IRC Robot, Send Command, but now I need the bot to read the command

I have a PHP IRC Robot that I use in my channel and I need it to make OPs to specific set users in the script by me. Anyways I want the robot to check if the user is logged into NickServ to prevent any sort of fraud or anything. Anyways, here is my…
Brad R