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

Python twisted event based jabber/xmpp/email/irc/chat client that listens and responds to messages

I am looking to have my client "react" to a received message through some xml based communications medium. I was looking into xmpp with google talk, but I just need something that can quickly relay messages on an event based basis (i.e. without…
Alex Eftimiades
  • 2,527
  • 3
  • 24
  • 33
2
votes
1 answer

Python IRC bot is responding endlessly

I am slowly learning Python and thumbing through the tutorials. I feel I have a basic understanding of how it works. As a creative project I want to make an IRC bot. I don't want to use a pre-established framework. I do not intend to reinvent the…
Jordan
  • 69
  • 5
2
votes
2 answers

Determining the topic of a conversation programmatically

This is probably an extremely difficult question to answer, but here is my question anyway. I am wondering what the best method is for determining the topic of a conversation. The conversation takes place over IRC. I have written chatbots in the…
Olical
  • 39,703
  • 12
  • 54
  • 77
2
votes
2 answers

How to get IP address of the users in a particular channel

I have an IRC client application and I am currently trying to integrate it with google maps. I am fairly new to android and hence I would like to know how to get ip address of the users in an channel. Note: I am aware about /whois command but I…
android.developer
  • 365
  • 3
  • 8
  • 18
2
votes
2 answers

Importing methods from file into a class

I am making an IRC bot with Twisted and I have run into a problem. I want to import functions from a seperate file into my main class (the one that inherits irc.IRCClient) so they can be used as methods. I have thought of two possible solutions, but…
cgt
  • 526
  • 6
  • 18
2
votes
1 answer

Perl Irssi scripting: How to send msg to a specific channel?

I need to establish this single task with Irssi Perl script. I have my own channel and I want to sent msg directly to that channel in certain scenarios. My experience with Perl is quite limited so I haven't got this one. I am confused how to manage…
user1009108
  • 21
  • 1
  • 3
2
votes
1 answer

C library for IRC client

I'm using libircclient for a C project. Because the lib is not supporting IRC over SSL/TLS I'm searching a different one. Anyone knows a good C based IRC library? Thanks
Jonas Schnelli
  • 9,965
  • 3
  • 48
  • 60
2
votes
1 answer

IRC client - No reply on JOIN

I am writing a IRC client in C++ (with the help of the SFML library), but it is behaving strangely. I send the NICK and USER commands and I can connect to the server, but the JOIN command has many strange thing happening that I have to write "Random…
SFI
  • 23
  • 4
2
votes
3 answers

Testing an IRC bot

I am writing an IRC bot in Python using the Twisted library. To test my bot I need to connect several times to an IRC network as my bot requires a restart each time a change is made. Therefore I am often "banned" from these networks for a couple of…
simonbs
  • 7,932
  • 13
  • 69
  • 115
2
votes
3 answers

invalid \x escape Module has no __module_name__ defined

when loading the following (or any python script for xchat version 2.8.9 on 64 bit windows 7): __module_name__ = "test.py" __module_version__ = "0.666" __module_description__ = "I AM AN EXPERT PROGRAMMER" import xchat, random, string, re def…
bob
  • 21
  • 2
2
votes
1 answer

How to run a C program and get output of the program using Twisted Python

I have a Python Bot written using Twisted framework and I have a C program that outputs certain text. How would I be able to run have Twisted run the C program using a command, collect the output, then print the output back to me?
bsdfa
  • 21
  • 1
2
votes
1 answer

WeeChat/irc - Tor Proxy

I dont think this is a very hard to solve problem, never the less I didnt find anything about it online. I am pretty new to irc/weechat and obviously dont want to leak my ip whenever i join a room. So I want to use a proxy, specifically tor. The…
m100re
  • 88
  • 5
2
votes
2 answers

Java Sockets and Blackberry programming

i'm new to programming and I'm trying to build a blackberry IRC Client, I made it connect to a server, join a channel and say something, but how can I receive messages ? I don't know how to make a loop to wait for messages, can somebody help me ?…
2
votes
4 answers

Python : Check if IRC connection is lost (PING PONG?)

So my question is, how would i get my bot to listen if there is a PING and if there's no ping in an interval of a minute, it will react as though the connection has been lost. How would one go about doing that? EDIT: This is the working code for…
Tehnix
  • 2,020
  • 2
  • 18
  • 23
2
votes
1 answer

Convert deprecated Perl's Net::IRC codes to AnyEvent::IRC::Client inquiry

Since the Perl's Net::IRC library's been deprecated, I need to convert some old code that uses it over to the newer AnyEvent::IRC::Client. The problem is that the MetaCPAN's AnyEvent docs. don't show any equivalence to the IRC numeric event codes…
santa100
  • 255
  • 1
  • 5