WebIRC Support

UnrealIRCd supports the WEBIRC / CGIIRC protocol. This allows users to use a browser rather than a (real) IRC client and still make them show up on IRC with their real IP.

NOTE: Do not confuse this with WebSockets, which is more modern, also allows users to chat from their browser (and show their real IP) and does not use WEBIRC.

How it works
Take this example:

User (IP: 1.2.3.4) <--browser connection--> WebIRC software (IP: 5.5.5.5) <--IRC connection--> UnrealIRCd (IP: 6.6.6.6)

User
The user only needs a web browser, nothing else. Normally any Firefox, Google Chrome, Internet Explorer or Safari version will do.

WebIRC software
You need to install a web irc client. Which one you choose is up to you. This could be installed on the same machine as the IRC Server is on, but it's also perfectly fine if it's installed on a different machine.

Examples:
 * KiwiIRC
 * qwebirc

UnrealIRCd
Your Web IRC may already work, but all your users will show up with the same IP when they come online. Why? Take a look at the example at the beginning: all IRC connections originate from your WebIRC machine (5.5.5.5 in our example), so all your users will show up with the IP 5.5.5.5. UnrealIRCd has no way of knowing that the actual user 'behind it' actually has IP 1.2.3.4.

This is a real problem if you ban a user from a channel (+b *@5.5.5.5), or /KLINE *@5.5.5.5, as it will affect all the (many) clients that use the WebIRC software. But there's a solution, see next.

Configuring WEBIRC
This is where the WEBIRC protocol comes to the rescue. With WEBIRC you allow a specific IP (your WebIRC machine) with a specific password to "spoof" the host, that is: to change/set the IP of the user on IRC.
 * 1) On UnrealIRCd: you create a WebIRC block where you specify your webirc machine IP and a secret password
 * 2) In the WebIRC software: configure it to use WEBIRC and specify the same password. See also the WebIRC block for an example for KiwiIRC.

Then, when all is good your clients will no longer end up with the WebIRC machine's IP but with their real IP instead (1.2.3.4 in our example).

Note that spoofing of the IP is really something powerful, so you should only add webirc blocks for machines you trust.