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

Do all IRC servers send 005 RPL_ISUPPORT?

This numeric isn't part of RFC 1459, but I would like to be able to use it in order to properly stack and unstack modes in an IRC bot. Are there any mainstream IRC servers that don't send this?
Brian Bi
  • 111,498
  • 10
  • 176
  • 312
4
votes
3 answers

How to run a PHP script via SSH and keep it running after I quit

I'm trying to restart a custom IRC bot. I tried various commands : load.php daemon load.php daemon load.php && But that makes the script execute inside the console (I see all the output) and when I quit the bot quits as well. The bot author…
WaterBearer
  • 229
  • 1
  • 5
  • 13
4
votes
1 answer

Linebreak IRC protocol

I've written an IRC bot in java, but I am having the following problem : I have a help function that returns all the functions of bots (usage, example,...) to a user in private message. The problem is that if I send this line by line, messages get…
Lucas Kauffman
  • 6,789
  • 15
  • 60
  • 86
4
votes
1 answer

IRC Bot not identifying with server - Connection hangs

When I try and connect to freenode using a simple IRC bot in C#, I get the following messages: :asimov.freenode.net NOTICE * :* Looking up your hostname... :asimov.freenode.net NOTICE * :* Checking Ident :asimov.freenode.net NOTICE * :* Couldn't…
WilHall
  • 11,644
  • 6
  • 31
  • 53
4
votes
1 answer

How can I conduct a poll through an irc bot?

I've set up a irc bot using socket. I've added a few commands , but I'd like to add a "poll" function. Ideally, the bot would get a command with this format: !poll
user667143
4
votes
2 answers

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 1023: unexpected end of data

Basically I've made an IRC Twitch bot in Python that does nothing but join the channel for now. The ping-pong cycle works properly for a while but then it gets halted with the error in the title. What did I do wrong? Thanks in advance. import…
emredesu
  • 179
  • 1
  • 5
  • 11
4
votes
0 answers

Should I use IRC or XMPP?

I need instant messaging for two thing, communication with specific group of people ($COUNT <= 10) and for controlling bot network (nothing illegal). I want something self-hosted for this. I know two protocols, IRC and XMPP. I'm having hard time…
graywolf
  • 7,092
  • 7
  • 53
  • 77
4
votes
1 answer

Weechat get config variable

How can I get a Weechat config variable? For instance, I can set configs: /set irc.servers.freenode.ssl on How can I retrieve the values I set?
eatonphil
  • 13,115
  • 27
  • 76
  • 133
4
votes
5 answers

IRC bot functionalities

I'm learning Python and would like to start a small project. It seems that making IRC bots is a popular project amongst beginners so I thought I would implement one. Obviously, there are core functionalities like being able to connect to a server…
Mark Klein
  • 65
  • 2
  • 4
4
votes
1 answer

SSL error with using multiprocessing and sockets

Python Version: 3.4.3 Arch Linux: 4.1.3-1-ARCH I am getting this error when using a socket wrapped with the SSL module: ssl.SSLError: [SSL: SSLV3_ALERT_BAD_RECORD_MAC] sslv3 alert bad record mac (_ssl.c:1769) Things you might need to know. I get…
techb
  • 91
  • 2
  • 7
4
votes
1 answer

IRC connection errors on a comedicly simple python program

I started out today trying to make a relatively complex program involving IRC logs. No matter what I've done, I've been getting: ['ERROR', ':Closting', 'Link:', *******identifying details**********,'(Connection', 'timed', 'out')' I figured…
Joe
  • 43
  • 4
4
votes
1 answer

TypeError: can't concat bytes to str, trying to use python3

So the following site explains how to make an irc bot, using socket, but it only works for python2, so I tried to make it compatible, but I get the error mentioned in the title. Here is my code: import socket # Some basic variables used to configure…
IThelp
  • 57
  • 1
  • 1
  • 8
4
votes
2 answers

Python (Twisted) - reading from fifo and sending read data to multiple protocols

Im trying to write some kind of multi protocol bot (jabber/irc) that would read messages from fifo file (one liners mostly) and then send them to irc channel and jabber contacts. So far, I managed to create two factories to connect to jabber and…
SpankMe
  • 41
  • 2
4
votes
1 answer

Implementing CTCP commands in an IRC bot (Haskell)

I have followed the tutorial on the Haskell wiki about implementing an IRC bot. and everything worked out fine. But once I started extending it, I realised that It would need to respond to CTCP requests from other users for commands like version and…
Jonno_FTW
  • 8,601
  • 7
  • 58
  • 90
4
votes
1 answer

How to use Hubot and node-cron with the IRC adapter

I've been unable to properly setup Hubot and node-cron to execute tasks within my IRC channels. This page shows how I initially setup my code: https://leanpub.com/automation-and-monitoring-with-hubot/read#leanpub-auto-periodic-task-execution Here is…
Chad L
  • 71
  • 5