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
0 answers

Why is my Python multiprocess crashing when I try to run infinite loop along with gui

I haven’t coded since college and I’m new to Python so I’m coming at this as a relative novice. My ultimate goal will be to have a gui program that will react based on commands people enter into twitch chat. I have a barebones gui created with…
2
votes
1 answer

IRC logging script

I am looking for a script to log chat from an IRC channel. If possible I would like the script to be able to output some nice HTML and allow the logs to be browsed by date. A Google search has thrown up a couple of Perl and PHP scripts, but I am not…
mrwooster
  • 23,789
  • 12
  • 38
  • 48
2
votes
2 answers

Can P2P be done without port forwarding?

I was making a simple file transfer program through IRC and when I was reading up I saw that IRC when sharing a file creates a direct connection between the two users independent of the server (DCC, Direct Client Connect). After searching a while I…
orlp
  • 112,504
  • 36
  • 218
  • 315
2
votes
3 answers

WPF (irc) chat log control

I'm trying to learn WPF and was thinking about creating a simple IRC client. The most complicated part is to create the chat log. I want it to look more or less like the one in mIRC: or irssi: The important parts are that the text should be…
user408952
  • 882
  • 9
  • 23
2
votes
5 answers

How to find x in a string in Python

I was wondering how to go about finding a string you don't know what is, in a string. I am writing an IRC bot and i need this function. I want to be able to write: !greet Greg and then my bot is supposed to say "Hi, Greg!". So what comes after greet…
Andesay
  • 229
  • 2
  • 4
  • 9
2
votes
1 answer

PHP IRC client for inclusion in web page

Does anyone know whether PHP can be used to include an IRC channel in a web page, so that visitors to the website can login to the IRC and communicate with each other. Thanks.
diggersworld
  • 12,770
  • 24
  • 84
  • 119
2
votes
2 answers

JOIN command for IRC Protocol

Working on own IRC Client and have some questions. When I join a channel, I get multiple responses from IRC server after I have sent the JOIN command. They occur in this order: -Server repeats/verifies JOIN command -Server sends channel…
DookieMan
  • 992
  • 3
  • 10
  • 26
2
votes
4 answers

How can I implement an anti-spamming technique on my IRC bot?

I run my bot in a public channel with hundreds of users. Yesterday a person came in and just abused it. I would like to let anyone use the bot, but if they spam commands consecutively and if they aren't a bot "owner" like me when I debug then I…
meder omuraliev
  • 183,342
  • 71
  • 393
  • 434
2
votes
1 answer

Generate SSL certificate for bip (IRC proxy) with Letsencrypt

Letsencrypt is fantastic because it lets users generate valid (not self-signed) SSL certificates for free. I'm using bip as an IRC proxy. Bip can use an SSL certificate for encryption, but the documentation is a bit fuzzy on this. I know how to…
Régis B.
  • 10,092
  • 6
  • 54
  • 90
2
votes
2 answers

IRC related help

Now I have my bot to send message when the bot joins. However how do I make a form that would post data so that the bot will say the message to the channel? Here is my script (Rewamped):
Ray
  • 341
  • 2
  • 6
  • 17
2
votes
1 answer

Sending bold/colored messages on IRC through a PHP bot

I have a slightly special PHP bot of my own design which has only one very simple purpose : It reads the contents of a one line .txt file and writes it on IRC. Nothing more, nothing less. This is how the bot reads the file then writes to IRC…
Bad
  • 81
  • 8
2
votes
2 answers

MASM str and substr?

I'm currently coding an irc bot in asm I have already done this once in C++, so I know how to solve most problems I encounter, but I need a substr()[*] function like the one seen in C++. I need the substr function to receive the server name from a…
Rick
  • 35
  • 6
2
votes
1 answer

IRC Protocol - Registration to Server with Password

I'm trying to write a Python IRC script. It is not connecting to my UnrealIRCD server, so I tried it with TELNET: telnet xx.xx.xx.xx 6667 Trying xx.xx.xx.xx... Connected to xx.xx.xx.xx. Escape character is '^]'. PASS MYSERVERPASS NICK…
Tdotcom
  • 145
  • 12
2
votes
1 answer

Python3; Speed when sending data : IRC protocol, DCC file transfer

I've written a new IRC client to which I just added the DCC SEND part, therefore supporting direct file transfer for both users of the app. Nothing, fancy, I'm using the irc python library to power the client and Django for the GUI. The great…
mrj
  • 589
  • 1
  • 7
  • 17
2
votes
1 answer

TcpClient getting disposed automatically

Using using (NetworkStream stream = client.GetStream()) Causes the socket to close.