CGI:IRC

CGI program

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "CGI:IRC" – news · newspapers · books · scholar · JSTOR (November 2010) (Learn how and when to remove this template message)

|

CGI:IRC

Developer(s)| David Leadbeater
Initial release| September 9, 2000 (2000-09-09)
Stable release| 0.5.12 (June 6, 2017; 5 years ago (2017-06-06)) [±]
Repository| sourceforge.net/projects/cgiirc/
Written in| Perl
Type| IRC client
License| GNU General Public License
Website| cgiirc.org

CGI:IRC is a CGI program written in Perl that allows access to IRC via a web browser.[1] It is designed to be flexible and has many uses such as an IRC gateway for an IRC network, a chat-room for a website or to access IRC when stuck behind a restrictive firewall.[2]

CGI:IRC will work in most browsers, including text based browsers such as Links. To make full use of most of the available features, a newer version is essential; older browsers will work, but CGI:IRC will use a single windowed interface instead and the names list will not update as quickly.

## Contents

* 1 Main features
* 2 Use of CGI:IRC
* 3 Abuse of CGI:IRC
* 4 Server side
* 5 See also
* 6 References
* 7 External links

## Main features[edit]

With a modern browser (with JavaScript and DHTML enabled),[2] CGI:IRC will present a tabbed interface similar to GUI IRC clients. Tab completion and keyboard shortcuts are available, for example ALT+window-number jumps to a particular window.

Some common IRC client features are unavailable, such as scripting, DCC chat, and file transfers, due to the webserver-based nature of CGI:IRC.[2]

## Use of CGI:IRC[edit]

CGI:IRC is used by many IRC networks to provide a way for users to chat on their network from within their web browser. When used in this way, most of the functions are disabled for security reasons, i.e. the user is unable to connect to a different server, sometimes the channels that the user may join are restricted. Due to the nature of CGI:IRC, users are unable to use DCC.[1]

What was a seemingly inconsequential implementation of the IRC protocol is increasingly being seen as a means to evade bans in IRC chat rooms. Several IRC servers have, as a consequence, developed an intolerance for CGI connections. Compounding this development is the fact that there does not exist a means to effectively distinguish between a CGI connection and a real IRC connection.

Some IRC servers may display the true hostname of the connecting client, most will only show the hostname of the CGI:IRC proxy. However, this does not offer much in the way of privacy, since the IP address of the user is hex encoded and included in the ident and/or real name. A simple perl script to decode the IP is included with CGI:IRC. Depending on how CGI:IRC is configured, it may also return the users true IP address (in addition to the HTTP headers) in response to a CTCP USERINFO request.

## Abuse of CGI:IRC[edit]

Just like other open proxies, open installations of CGI:IRC, which do not restrict the server used, can also be abused. Usually CGI:IRC is abused to create many clones, which are used to flood an IRC network or a particular user. In response, many networks have started to ban CGI:IRC clients except those which originate from their own CGI:IRC proxy (if they have one).

## Server side[edit]

CGI:IRC runs on a webserver such as Apache configured to run Perl, and uses Unix domain sockets. It uses a special HTTP streaming connection while communicating with the user's web browser; this reduces network usage because the user's webpage is not continually being redrawn.[2] Early versions of some web browsers such as Apple Safari had problems with streaming connections.[2]

CGI:IRC can be configured to allow access to any server and channel, or restricted to single instances. One limitation of CGI:IRC with respect to some IRC servers is "Because CGI:IRC acts as a client, connections from it appear to be coming from the web server's address. This allows it to get past firewalls, but if several clients are connecting from the same address, some IRC servers will refuse to accept additional connections beyond a certain limit."[2]

## See also[edit]

* Free and open-source software portal

* Comparison of Internet Relay Chat clients
* Web chat

## References[edit]

1. ^ a b Piccard, Paul; Brian Baskin; George Spillman; Marcus Sachs (May 1, 2005). "Common IRC Clients by OS". Securing IM and P2P Applications for the Enterprise (1st ed.). Syngress. p. 431\. ISBN 1-59749-017-2.
2. ^ a b c d e f Leadbeater, David (2004-07-27). "Other Ways to Connect to IRC : Hack 91: Use IRC from a Web Page without Java". In Mutton, Paul (ed.). IRC Hacks: 100 Industrial-Strength Tips & Tools (1st ed.). Sebastopol, CA: O'Reilly Media. pp. 342–344. ISBN 0-596-00687-X.

## External links[edit]

* Official website
* "CGI:IRC". Freecode.

* v
* t
* e

Internet Relay Chat (IRC)

* Comparison of clients
* mobile

Common terms|

* BNC
* Bot
* DoS attack
* Flood
* Netsplit
* Operator
* Script
* IRCd
* Services
* Takeover

Related protocols|

* IRCX
* MSN Chat
* CTCP
* DCC
* XDCC
* Ident

Networks|

* DALnet
* EFnet
* Freenode
* GameSurge
* IRCnet
* Libera Chat
* OFTC
* QuakeNet
* Rizon
* RusNet
* SlashNET
* Undernet

Technology|

* Eggdrop
* Infobot
* BitlBee
* ZNC
* UnrealIRCd

See also|

* List of commands
* Subculture
* Jarkko Oikarinen

Clients|

| macOS|

* Colloquy
* Fire
* Homer
* Ircle
* Linkinus
* Snak

|

Microsoft Windows|

* Bersirc
* mIRC
* Microsoft Comic Chat
* PIRCH
* Shareaza
* Visual IRC

Unix-like|

* ircII
* Ii

Cross-platform|

* Ayttm
* BitchX
* Irssi
* Konversation
* KVIrc
* LeafChat
* naim
* Nettalk
* Smuxi
* WeeChat
* HexChat
* PJIRC
* Quassel IRC
* IceChat

Multi-IM|

* Centericq
* Empathy
* Kopete
* Miranda NG
* Pidgin
* Trillian

Web-based|

* CGI:IRC
* PJIRC
* Mibbit

Web browser components|

* ChatZilla
* Mozilla Application Suite
* Mozilla Thunderbird

Library and plug-ins|

* ERC
* rcirc

Category
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template