summaryrefslogtreecommitdiffstats
path: root/ksirc/KSOpenkSirc
diff options
context:
space:
mode:
Diffstat (limited to 'ksirc/KSOpenkSirc')
-rw-r--r--ksirc/KSOpenkSirc/Makefile.am26
-rwxr-xr-xksirc/KSOpenkSirc/convert-mIRC19
-rw-r--r--ksirc/KSOpenkSirc/enter_combo.cpp10
-rw-r--r--ksirc/KSOpenkSirc/enter_combo.h37
-rw-r--r--ksirc/KSOpenkSirc/open_ksirc.cpp377
-rw-r--r--ksirc/KSOpenkSirc/open_ksirc.h53
-rw-r--r--ksirc/KSOpenkSirc/open_ksircData.ui337
-rw-r--r--ksirc/KSOpenkSirc/serverDataType.h56
-rw-r--r--ksirc/KSOpenkSirc/serverFileParser.cpp114
-rw-r--r--ksirc/KSOpenkSirc/serverFileParser.h13
-rw-r--r--ksirc/KSOpenkSirc/servers.ini362
-rw-r--r--ksirc/KSOpenkSirc/servers.txt654
12 files changed, 2058 insertions, 0 deletions
diff --git a/ksirc/KSOpenkSirc/Makefile.am b/ksirc/KSOpenkSirc/Makefile.am
new file mode 100644
index 00000000..3af4d5f2
--- /dev/null
+++ b/ksirc/KSOpenkSirc/Makefile.am
@@ -0,0 +1,26 @@
+KDE_CXXFLAGS = $(USE_RTTI) $(USE_EXCEPTIONS) -UQT_NO_ASCII_CAST
+
+# set the include path for X, qt and KDE
+INCLUDES= $(all_includes)
+
+####### This part is very pws specific
+# you can add here more. This one gets installed
+noinst_LTLIBRARIES = libksopenksirc.la
+
+# Which sources should be compiled for dialog
+
+libksopenksirc_la_SOURCES = \
+ open_ksirc.cpp\
+ open_ksircData.ui\
+ serverFileParser.cpp\
+ enter_combo.cpp
+
+# this option you can leave out. Just, if you use "make dist", you need it
+noinst_HEADERS = open_ksirc.h open_ksircData.h serverDataType.h serverFileParser.h enter_combo.h
+
+# just to make sure, automake makes them
+METASOURCES = AUTO
+
+misc_DATA = servers.txt servers.ini
+miscdir = $(kde_datadir)/ksirc
+
diff --git a/ksirc/KSOpenkSirc/convert-mIRC b/ksirc/KSOpenkSirc/convert-mIRC
new file mode 100755
index 00000000..85550dd3
--- /dev/null
+++ b/ksirc/KSOpenkSirc/convert-mIRC
@@ -0,0 +1,19 @@
+#!/usr/bin/perl
+
+while ($line = <STDIN>) {
+ if ($line =~ /.*=(Random .*)SERVER:(.*):(.*)GROUP:.*/) {
+ $service = 'Random';
+ $servername = $1;
+ $server = $2;
+ $ports = $3;
+ print "$service\:$servername\:$server\:$ports\:\n";
+ }
+ elsif ($line =~ /.*=(.*): (.*)SERVER:(.*):(.*)GROUP:.*/) {
+ $service = $1;
+ $servername = $2;
+ $server = $3;
+ $ports = $4;
+
+ print "$service\:$servername\:$server\:$ports\:\n";
+ }
+}
diff --git a/ksirc/KSOpenkSirc/enter_combo.cpp b/ksirc/KSOpenkSirc/enter_combo.cpp
new file mode 100644
index 00000000..3394423d
--- /dev/null
+++ b/ksirc/KSOpenkSirc/enter_combo.cpp
@@ -0,0 +1,10 @@
+#include "enter_combo.h"
+
+void EnterCombo::keyPressEvent( QKeyEvent *e ){
+ if(e->key() == Key_Return || e->key() == Key_Enter)
+ emit(enterPressed());
+ else
+ QComboBox::keyPressEvent(e);
+}
+
+#include "enter_combo.moc"
diff --git a/ksirc/KSOpenkSirc/enter_combo.h b/ksirc/KSOpenkSirc/enter_combo.h
new file mode 100644
index 00000000..f0752a2d
--- /dev/null
+++ b/ksirc/KSOpenkSirc/enter_combo.h
@@ -0,0 +1,37 @@
+#ifndef ENTER_COMBO_H
+#define ENTER_COMBO_H
+
+#include <qcombobox.h>
+#include <qevent.h>
+#include <qkeycode.h>
+#include <qlineedit.h>
+
+#undef KeyPress // X headers...
+
+class EnterCombo : public QComboBox {
+ Q_OBJECT
+public:
+ EnterCombo ( QWidget * parent=0, const char * name=0 )
+ : QComboBox(TRUE, parent, name)
+ {
+ }
+ EnterCombo ( bool rw, QWidget * parent=0, const char * name=0 )
+ : QComboBox(rw, parent, name)
+ {
+ QKeyEvent ke(QEvent::KeyPress, SHIFT|Key_Home, 0, 0);
+ keyPressEvent(&ke);
+ }
+
+ virtual void show(){
+ QComboBox::show();
+ lineEdit()->selectAll();
+ }
+
+signals:
+ void enterPressed();
+
+protected:
+ virtual void keyPressEvent( QKeyEvent *e );
+};
+
+#endif
diff --git a/ksirc/KSOpenkSirc/open_ksirc.cpp b/ksirc/KSOpenkSirc/open_ksirc.cpp
new file mode 100644
index 00000000..5a4a4799
--- /dev/null
+++ b/ksirc/KSOpenkSirc/open_ksirc.cpp
@@ -0,0 +1,377 @@
+/**********************************************************************
+
+ --- Qt Architect generated file ---
+
+ File: open_ksirc.cpp
+ Last generated: Wed Jul 29 16:41:26 1998
+
+ *********************************************************************/
+
+#include "open_ksirc.h"
+#include "serverDataType.h"
+#include "serverFileParser.h"
+#include "enter_combo.h"
+#include "../ksircserver.h"
+#include <qlistbox.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <qdict.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <kdebug.h>
+#include <kapplication.h>
+#include <kstandarddirs.h>
+#include <klocale.h>
+#include <kconfig.h>
+#include <kmessagebox.h>
+#include <kmdcodec.h>
+
+QPtrList<Server> Groups;
+
+#undef Inherited
+#define Inherited open_ksircData
+
+open_ksirc::open_ksirc
+(
+ QWidget* parent,
+ const char* name
+)
+ :
+ Inherited( parent, name, true )
+{
+ setCaption( i18n("Connect to Server") );
+
+ // check for existance of ~/.kde/share/apps/ksirc/servers.txt
+ // if it don't exist use $KDEDIR/share/apps/ksirc/servers.txt
+ // changes are written to ~/.kde/share/apps/ksirc/servers.txt
+
+ QString filename = locate("appdata", "servers.txt");
+ serverFileParser::readDatafile( filename );
+
+ Groups.setAutoDelete(TRUE);
+
+ // TODO add "Recent" to global listing servers here..
+ // Now we read in the Recent group from the config file
+ // remove all recent servers first
+
+ for(Server *s = Groups.first(); s != 0x0; s = Groups.next()){
+ if(s->group() == i18n("Recent")){
+ Groups.remove();
+ }
+ }
+
+ // Add current ones
+ KConfig *conf = kapp->config();
+ conf->setGroup("ServerList");
+ CheckB_StorePassword->setChecked( conf->readBoolEntry("StorePasswords") );
+ QStringList recent = conf->readListEntry("RecentServers");
+ for(QStringList::ConstIterator it = recent.begin(); it != recent.end(); ++it){
+ if(conf->hasGroup("RecentServer-" + *it)){
+ conf->setGroup("RecentServer-" + *it);
+ QPtrList<port> rp;
+ rp.inSort(new port(conf->readEntry("Port", "6667")));
+ QString password = decryptPassword(conf->readEntry("Password"));
+ bool ssl = conf->readBoolEntry("SSL");
+ Groups.insert(0, new Server(i18n("Recent"), *it, rp,
+ i18n("Recent Server"), "", password,
+ ssl));
+ }
+ else {
+ QStringList info = QStringList::split(":", *it);
+ if (info.isEmpty())
+ continue;
+ QString name = info[0];
+ QPtrList<port> rp;
+ if (info.count() > 1)
+ rp.inSort(new port(info[1]));
+ else
+ rp.inSort(new port("6667"));
+ QString password;
+ if (info.count() > 2)
+ password = decryptPassword(info[2]);
+
+ conf->setGroup("RecentServer-" + name);
+ conf->writeEntry("Port", rp.first()->portnum());
+ conf->writeEntry("Password", encryptPassword(password));
+ conf->writeEntry("SSL", false);
+
+ Groups.insert(0, new Server(i18n("Recent"), name, rp,
+ i18n("Recent Server"), "", password));
+ }
+ }
+
+ ComboB_ServerName->setAutoCompletion( TRUE );
+ ComboB_ServerPort->setAutoCompletion( TRUE );
+
+ insertGroupList();
+
+ QString blah = i18n("Recent");
+ setGroup(blah);
+
+ connect(ComboB_ServerGroup, SIGNAL(activated( const QString& )),
+ this, SLOT(setGroup( const QString& )));
+ connect(ComboB_ServerName, SIGNAL(activated( const QString& )),
+ this, SLOT(setServer( const QString& )));
+
+ connect(PB_Connect, SIGNAL(clicked()), this, SLOT(clickConnect()));
+ connect(PB_Edit, SIGNAL(clicked()), this, SLOT(clickEdit()));
+ connect(PB_Cancel, SIGNAL(clicked()), this, SLOT(clickCancel()));
+
+ PB_Connect->setDefault(TRUE);
+ PB_Connect->setAutoDefault(TRUE);
+ PB_Edit->setEnabled(false); // Not yet implemented.
+
+ ComboB_ServerName->setFocus();
+ connect(ComboB_ServerName, SIGNAL(enterPressed()), this, SLOT(clickConnect()));
+}
+
+// insert a sorted list of groups into ComboB_ServerGroup, note that
+// we want to get the recent servers in first so we insert "Recent"
+// in first, then we want Random.
+
+void open_ksirc::insertGroupList()
+{
+ QStrList tempgroups;
+ Server *serv;
+
+ for ( serv=Groups.first(); serv != 0; serv=Groups.next() ) {
+ if (tempgroups.find(serv->group()) == -1)
+ tempgroups.inSort( serv->group() );
+ }
+
+ ComboB_ServerGroup->insertItem(i18n( "Recent") );
+ ComboB_ServerGroup->insertItem(i18n( "Random") );
+ for (const char* t = tempgroups.first(); t; t = tempgroups.next()) {
+ ComboB_ServerGroup->insertItem( t );
+ }
+}
+
+// insert a sorted list of servers from the group passed as an arg
+// into ComboB_ServerName, if a list is already there delete it.
+// note this does not check for multiple occurrances of the same server
+
+void open_ksirc::insertServerList( const char * group )
+{
+ QListBox *newListBox = new QListBox();
+ Server *serv;
+
+ for ( serv=Groups.first(); serv != 0; serv=Groups.next() ) {
+ if ( !qstrcmp(serv->group(), group) ) {
+ newListBox->insertItem( serv->server(), 0 );
+ }
+ }
+
+ ComboB_ServerName->setListBox(newListBox);
+// ComboB_ServerName->setCurrentItem( 0 ); // this don't work =(
+ if (newListBox->count() > 0)
+ ComboB_ServerName->setEditText( newListBox->text( 0 ) );
+}
+
+// insert a sorted list of ports from the server passed as an arg
+// into ComboB_ServerPort, if a list is already there delete it.
+// note that this only takes the first occurrance if there is two
+// entiies with the same server.
+
+void open_ksirc::setServer( const QString &serveraddress )
+{
+ QListBox *newListBox = new QListBox();
+ Server *serv;
+ QPtrList<port> portlist;
+ port *p;
+ bool defaultport = FALSE;
+
+ for ( serv=Groups.first(); serv != 0; serv=Groups.next() ) {
+ if (serv->server() == serveraddress) {
+ setServerDesc( serv->serverdesc() );
+ portlist = serv->ports();
+ for ( p=portlist.last(); p != 0; p=portlist.prev() ) {
+ newListBox->insertItem( p->portnum() );
+ if (strcmp(p->portnum(), "6667") == 0)
+ defaultport = TRUE;
+ }
+ LineE_Password->setText( serv->password() );
+ CheckB_StorePassword->setEnabled( !serv->password().isEmpty() );
+ CheckB_UseSSL->setChecked(serv->usessl());
+ break;
+ }
+ }
+ ComboB_ServerPort->setListBox(newListBox);
+// ComboB_ServerPort->setCurrentItem( 0 ); // doesn't work
+ if (defaultport) {
+ ComboB_ServerPort->setEditText("6667");
+ } else {
+ if (newListBox->count() > 0)
+ ComboB_ServerPort->setEditText( newListBox->text( 0 ) );
+ }
+}
+
+// Sets the server description if the isn't one set it to "Not Available"
+
+void open_ksirc::setServerDesc( QString description )
+{
+ if (description.isNull() || description.isEmpty()) {
+ Label_ServerDesc->setText( i18n("Not available"));
+ } else {
+ Label_ServerDesc->setText( description );
+ }
+}
+
+// This has got nothing to do with real encryption, it just scrambles
+// the password a little bit for saving it into the config file.
+// A random string of the same length as the password in UTF-8 is generated
+// and then each byte of the UTF-8 password is xored with the corresponding
+// byte of the random string. The returned value is a base64 encoding of
+// that random string followed by the scrambled password.
+QString open_ksirc::encryptPassword( const QString &password )
+{
+ QCString utf8 = password.utf8();
+ // Can contain NULL bytes after XORing
+ unsigned int utf8Length(utf8.length());
+ QByteArray result(utf8Length << 1);
+ memcpy(result.data(), kapp->randomString(utf8Length).latin1(), utf8Length);
+ for (unsigned int i = 0; i < utf8Length; ++i)
+ result[i + utf8Length] = utf8[i] ^ result[i];
+ return QString::fromLatin1(KCodecs::base64Encode(result));
+}
+
+QString open_ksirc::decryptPassword( const QString &scrambled )
+{
+ QByteArray base64, orig;
+ base64.duplicate(scrambled.latin1(), scrambled.length());
+ KCodecs::base64Decode(base64, orig);
+ QCString result;
+ for (unsigned int i = 0; i < (orig.size() >> 1); ++i)
+ result += orig[i] ^ orig[i + (orig.size() >> 1)];
+ return QString::fromUtf8(result);
+}
+
+void open_ksirc::setGroup( const QString &group )
+{
+ insertServerList( group );
+ if (ComboB_ServerName->count() > 0) {
+ QString blah = QString(ComboB_ServerName->text( 0 ));
+ setServer(blah);
+ } else {
+ setServerDesc( "" );
+ ComboB_ServerPort->setEditText("6667");
+ ComboB_ServerPort->insertItem("6667");
+ }
+ if(ComboB_ServerPort->currentText() == 0x0){
+ ComboB_ServerPort->setEditText("6667");
+ ComboB_ServerPort->insertItem("6667");
+ }
+}
+
+void open_ksirc::clickConnect()
+{
+ if ( ComboB_ServerName->currentText().isEmpty() )
+ {
+ KMessageBox::information( this, i18n( "Please enter a server name." ) );
+ return;
+ }
+
+ QString server;
+ QString port;
+ QString script;
+ Server *serv;
+ KConfig *conf = kapp->config();
+
+ hide();
+
+ server = ComboB_ServerName->currentText();
+ port = ComboB_ServerPort->currentText();
+
+ for ( serv=Groups.first(); serv != 0; serv=Groups.next() ) {
+ if (strcmp(serv->server(), server) == 0) {
+ script = serv->script();
+ }
+ break;
+ }
+
+ if(server.length() == 0)
+ reject();
+
+ if(port.isEmpty())
+ port = "6667";
+
+ QString plain, scrambled;
+ if (!LineE_Password->text().isEmpty())
+ {
+ plain = LineE_Password->text();
+ if (CheckB_StorePassword->isChecked())
+ scrambled = encryptPassword(LineE_Password->text());
+ }
+
+ conf->setGroup("ServerList");
+ conf->writeEntry("StorePasswords", CheckB_StorePassword->isChecked());
+ QStringList recent = conf->readListEntry("RecentServers");
+ if(recent.contains(server)){
+ QStringList::Iterator it = recent.find(server);
+ recent.remove(it);
+ }
+
+ /*
+ * This is legacy code only
+ */
+ //str is now "server:port"
+ //plain is now "server:port" or "server:port:pass" if a password was entered
+ //scrambled is now "server:port" or "server:port:scrambledpass" if
+ //a password was given and "store password" is checked
+
+ for (QStringList::Iterator it = recent.begin(); it != recent.end(); ) {
+ if ((*it).startsWith(server)) // ignore password
+ {
+ QStringList::Iterator del = it++;
+ recent.remove(del);
+ }
+ else
+ ++it;
+ }
+
+ recent.prepend(server);
+ conf->writeEntry("RecentServers", recent);
+
+ conf->setGroup("RecentServer-" + server);
+ conf->writeEntry("Port", port);
+ conf->writeEntry("Password", scrambled);
+ conf->writeEntry("SSL", CheckB_UseSSL->isChecked());
+
+ conf->sync();
+
+ KSircServer kss(server,
+ port,
+ script,
+ plain,
+ CheckB_UseSSL->isChecked());
+
+ // emit open_ksircprocess( server, port, script );
+ emit open_ksircprocess(kss);
+
+ accept();
+}
+
+void open_ksirc::clickCancel()
+{
+ reject();
+}
+
+void open_ksirc::clickEdit()
+{
+ // TODO open new server editor
+}
+
+void open_ksirc::passwordChanged( const QString& password )
+{
+ CheckB_StorePassword->setEnabled( !password.isEmpty() );
+}
+
+open_ksirc::~open_ksirc()
+{
+ Groups.clear();
+}
+
+#include "open_ksirc.moc"
+
+// vim: ts=2 sw=2 et
diff --git a/ksirc/KSOpenkSirc/open_ksirc.h b/ksirc/KSOpenkSirc/open_ksirc.h
new file mode 100644
index 00000000..81145fca
--- /dev/null
+++ b/ksirc/KSOpenkSirc/open_ksirc.h
@@ -0,0 +1,53 @@
+/**********************************************************************
+
+ --- Qt Architect generated file ---
+
+ File: open_ksirc.h
+ Last generated: Wed Jul 29 16:41:26 1998
+
+ *********************************************************************/
+
+#ifndef open_ksirc_included
+#define open_ksirc_included
+
+#include "open_ksircData.h"
+
+#include <qdict.h>
+
+class KSircServer;
+
+class open_ksirc : public open_ksircData
+{
+ Q_OBJECT
+
+public:
+
+ open_ksirc
+ (
+ QWidget* parent = NULL,
+ const char* name = NULL
+ );
+
+ virtual ~open_ksirc();
+
+protected slots:
+ void setGroup( const QString& );
+ void setServer( const QString& );
+ void clickConnect();
+ void clickCancel();
+ void clickEdit();
+ void passwordChanged( const QString& );
+
+private:
+ void insertGroupList();
+ void insertServerList( const char * );
+ void setServerDesc( QString );
+ QString encryptPassword( const QString & );
+ QString decryptPassword( const QString & );
+
+signals:
+// void open_ksircprocess( const char *, int, const char * );
+ void open_ksircprocess( KSircServer & );
+
+};
+#endif // open_ksirc_included
diff --git a/ksirc/KSOpenkSirc/open_ksircData.ui b/ksirc/KSOpenkSirc/open_ksircData.ui
new file mode 100644
index 00000000..ae97f341
--- /dev/null
+++ b/ksirc/KSOpenkSirc/open_ksircData.ui
@@ -0,0 +1,337 @@
+<!DOCTYPE UI><UI version="3.1" stdsetdef="1">
+<class>open_ksircData</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>Form1</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>593</width>
+ <height>196</height>
+ </rect>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel" row="0" column="2" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Server/Quick connect to:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>ComboB_ServerName</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="4">
+ <property name="name">
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Port:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>ComboB_ServerPort</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>ComboB_ServerGroup</cstring>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Choose a server for an IRC Network</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Usually IRC Servers are connected to a net (IRCNet, Freenode, etc.). Here, you can select the closest server for your favorite network.</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Group:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>ComboB_ServerGroup</cstring>
+ </property>
+ </widget>
+ <widget class="EnterCombo" row="1" column="2" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>ComboB_ServerName</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="focusPolicy">
+ <enum>StrongFocus</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Enter/choose a server to connect to</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>If you selected an IRC Network in &lt;i&gt;"Group"&lt;/i&gt;, this window shows all of its servers. If you did not choose a group, you can enter your own here or select one of the recently used ones (&lt;i&gt;"Quick Connect"&lt;/i&gt;).</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="4">
+ <property name="name">
+ <cstring>ComboB_ServerPort</cstring>
+ </property>
+ <property name="editable">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Choose a server port</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Using &lt;i&gt;"6667"&lt;/i&gt; or &lt;i&gt;"6666"&lt;/i&gt; here is safe in most cases. Only use other values if you have been told so.</string>
+ </property>
+ </widget>
+ <widget class="QGroupBox" row="2" column="0" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>GroupBox2</cstring>
+ </property>
+ <property name="title">
+ <string>Server Description</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This is the description of the server currently selected</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>Label_ServerDesc</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="alignment">
+ <set>WordBreak|AlignTop|AlignLeft</set>
+ </property>
+ <property name="vAlign" stdset="0">
+ </property>
+ <property name="wordwrap" stdset="0">
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox" row="2" column="3" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>GroupBox1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Server Access</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel5</cstring>
+ </property>
+ <property name="text">
+ <string>Pass&amp;word:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>LineE_Password</cstring>
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="0" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>LineE_Password</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="echoMode">
+ <enum>Password</enum>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="1" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>CheckB_UseSSL</cstring>
+ </property>
+ <property name="text">
+ <string>Use SS&amp;L</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This will use a secure connection to the server. This must be supported by the server.</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="1" column="2">
+ <property name="name">
+ <cstring>CheckB_StorePassword</cstring>
+ </property>
+ <property name="text">
+ <string>S&amp;tore password</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This will cause your server password to be stored on your disk.</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QPushButton" row="3" column="4">
+ <property name="name">
+ <cstring>PB_Cancel</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Cancel Connect</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Cancel Connect</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="3" column="3">
+ <property name="name">
+ <cstring>PB_Connect</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>C&amp;onnect</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Connect to the selected server</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Connect to the server given in &lt;i&gt;"Server / Quick Connect to:"&lt;/i&gt; on the port given in &lt;i&gt;"Port:"&lt;/i&gt;.</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="3" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>PB_Edit</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Edit Servers</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string></string>
+ </property>
+ </widget>
+ <spacer row="3" column="0">
+ <property name="name">
+ <cstring>Spacer3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </grid>
+</widget>
+<customwidgets>
+ <customwidget>
+ <class>EnterCombo</class>
+ <header location="local">enter_combo.h</header>
+ <sizehint>
+ <width>-1</width>
+ <height>-1</height>
+ </sizehint>
+ <container>1</container>
+ <sizepolicy>
+ <hordata>5</hordata>
+ <verdata>5</verdata>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ <pixmap>image0</pixmap>
+ </customwidget>
+</customwidgets>
+<images>
+ <image name="image0">
+ <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
+ </image>
+</images>
+<connections>
+ <connection>
+ <sender>LineE_Password</sender>
+ <signal>textChanged(const QString&amp;)</signal>
+ <receiver>Form1</receiver>
+ <slot>passwordChanged(const QString&amp;)</slot>
+ </connection>
+</connections>
+<tabstops>
+ <tabstop>ComboB_ServerGroup</tabstop>
+ <tabstop>ComboB_ServerName</tabstop>
+ <tabstop>ComboB_ServerPort</tabstop>
+ <tabstop>LineE_Password</tabstop>
+ <tabstop>CheckB_StorePassword</tabstop>
+ <tabstop>PB_Edit</tabstop>
+ <tabstop>PB_Connect</tabstop>
+ <tabstop>PB_Cancel</tabstop>
+</tabstops>
+<slots>
+ <slot access="protected">passwordChanged(const QString &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/ksirc/KSOpenkSirc/serverDataType.h b/ksirc/KSOpenkSirc/serverDataType.h
new file mode 100644
index 00000000..80b94e27
--- /dev/null
+++ b/ksirc/KSOpenkSirc/serverDataType.h
@@ -0,0 +1,56 @@
+#ifndef SERVERDATATYPE_H
+#define SERVERDATATYPE_H
+
+#include <qptrlist.h>
+#include <qstring.h>
+
+class port
+{
+
+public:
+ port( const QString &portnum ) { p=portnum; }
+ QString portnum() const { return p; }
+
+private:
+ QString p;
+
+};
+
+
+class Server
+{
+
+public:
+ Server( const QString &group,
+ const QString &server,
+ QPtrList<port> ports,
+ const QString &serverdesc,
+ const QString &script,
+ const QString &password = QString::null,
+ bool dossl = false
+ ) {
+ g=group; s=server; p=ports; sd=serverdesc; sc=script;
+ pass=password;
+ ssl = dossl;
+ p.setAutoDelete(TRUE);
+ }
+ QString group() const { return g; }
+ QString server() const { return s; }
+ QPtrList<port> ports() const { return p; }
+ QString serverdesc() const { return sd; }
+ QString script() const { return sc; }
+ QString password() const { return pass; }
+ bool usessl() const { return ssl; }
+
+private:
+ QString g;
+ QString s;
+ QPtrList<port> p;
+ QString sd;
+ QString sc;
+ QString pass;
+ bool ssl;
+
+};
+
+#endif
diff --git a/ksirc/KSOpenkSirc/serverFileParser.cpp b/ksirc/KSOpenkSirc/serverFileParser.cpp
new file mode 100644
index 00000000..8e6ba80e
--- /dev/null
+++ b/ksirc/KSOpenkSirc/serverFileParser.cpp
@@ -0,0 +1,114 @@
+#include "serverFileParser.h"
+#include "serverDataType.h"
+#include <qfile.h>
+#include <stdlib.h>
+
+#include <kstandarddirs.h>
+#include <kdebug.h>
+
+extern QPtrList<Server> Groups;
+
+// Opens, reads and parses server information from a server file,
+// sets the information in the global variable and returns 1 if
+// sucessful, takes a filename as an argument.
+
+int serverFileParser::readDatafile( const char *fileName )
+{
+ Groups.setAutoDelete( TRUE );
+ Groups.clear();
+ QFile serverFile( fileName );
+ if ( !serverFile.open( IO_ReadOnly ) )
+ return -1;
+
+ QTextStream fileStream(&serverFile);
+
+ // the file is layed out as follows:
+ // service:servername:serveraddress:ports:script:
+ // so we parse it this way
+
+ while( !fileStream.eof() ) {
+ QString str = fileStream.readLine();
+ const char *strC = str.ascii();
+ char *token;
+ char groupC[1024], servernameC[1024], serveraddressC[1024], portsC[1024];
+ int pos = 0;
+ QString group;
+ QString servername;
+ QString serveraddress;
+ QPtrList<port> ports;
+ QString script;
+
+ QString buf;
+ QString portbuff;
+
+ pos = sscanf(strC, "%1023[^:]:%1024[^:]:%1023[^:]:%1023[^:]:", groupC, servernameC, serveraddressC, portsC);
+ if(pos != 4){
+ kdWarning() << "Failed to parse servers.txt on line: " << strC << ". Invalid format" << endl;
+ return 0;
+ }
+ group = groupC;
+ servername = servernameC;
+ serveraddress = serveraddressC;
+ token = strtok(portsC, ",");
+ while(token != NULL){
+ ports.inSort(new port(token));
+ token = strtok(NULL, ",");
+ }
+
+ /*
+ for( uint loc = 0; loc <= str.length(); loc++ ) {
+ if ( str[loc] == ':' || loc == str.length()) {
+ switch(pos) {
+ case 0: // service
+ group = buf.copy();
+ break;
+ case 1: // server name
+ servername = buf.copy();
+ break;
+ case 2: // server address
+ serveraddress = buf.copy();
+ break;
+ case 3: // port listing
+ for ( uint portloc = 0; portloc <= buf.length(); portloc++ ) {
+ if (buf[portloc] == ',' || portloc == buf.length()) {
+ if (!portbuff.isEmpty())
+ ports.inSort( new port(portbuff));
+ portbuff.truncate( 0 );
+ } else {
+ portbuff += buf[portloc];
+ }
+ }
+ break;
+ default: // script
+ script = buf.copy();
+ }
+ pos++;
+ buf.truncate( 0 );
+ portbuff.truncate( 0 );
+ } else {
+ buf += str[loc];
+ }
+ } // for loop
+ */
+
+
+ Groups.inSort( new Server(group, serveraddress, ports,
+ servername, script) );
+
+ } // while loop
+
+ serverFile.close();
+ return 1;
+
+}
+
+// Writes the data stored in the global variable to the server file,
+// returns 1 if sucessful, takes a filename as an argument, uhh NOT.
+// we want to write it ~/.kde/share/apps/ksirc/servers.txt
+//
+
+int writeDataFile()
+{
+ QString filename(KGlobal::dirs()->saveLocation("appdata")+"servers.txt");
+ return 1;
+}
diff --git a/ksirc/KSOpenkSirc/serverFileParser.h b/ksirc/KSOpenkSirc/serverFileParser.h
new file mode 100644
index 00000000..f3fd67e1
--- /dev/null
+++ b/ksirc/KSOpenkSirc/serverFileParser.h
@@ -0,0 +1,13 @@
+#ifndef serverFileParser_included
+#define serverFileParser_included
+
+#include <qobject.h>
+
+class serverFileParser
+{
+ public:
+ static int readDatafile( const char *fileName );
+ static int writeDataFile();
+};
+
+#endif
diff --git a/ksirc/KSOpenkSirc/servers.ini b/ksirc/KSOpenkSirc/servers.ini
new file mode 100644
index 00000000..8f3de1ee
--- /dev/null
+++ b/ksirc/KSOpenkSirc/servers.ini
@@ -0,0 +1,362 @@
+; Please report errors and broken servers to servers@mirc.com
+; June 12th, 2001
+
+[servers]
+n0=Random US DALnet serverSERVER:irc.dal.net:6662,6663,6664GROUP:01
+n1=Random EU DALnet serverSERVER:irc.eu.dal.net:6667GROUP:02
+n2=Random US EFnet serverSERVER:us.rr.efnet.net:6667GROUP:03
+n3=Random EU EFnet serverSERVER:eu.rr.efnet.net:6667GROUP:04
+n4=Random CA EFnet serverSERVER:ca.rr.efnet.net:6667GROUP:05
+n5=Random AU EFnet serverSERVER:au.rr.efnet.net:6667GROUP:06
+n6=Random US IRCnet serverSERVER:us.ircnet.org:6665,6666,6668GROUP:07
+n7=Random EU IRCnet serverSERVER:eu.ircnet.org:6665,6666,6668GROUP:08
+n8=Random AU IRCnet serverSERVER:au.ircnet.org:6667GROUP:09
+n9=Random US Undernet serverSERVER:us.undernet.org:6667GROUP:10
+n10=Random EU Undernet serverSERVER:eu.undernet.org:6667GROUP:11
+n11=Accessirc: Random serverSERVER:irc.accessirc.net:6667GROUP:Accessirc
+n12=Acestar: Random serverSERVER:irc.acestar.org:6667GROUP:Acestar
+n13=Action-IRC: Random serverSERVER:irc.action-irc.net:6660,6662,6664GROUP:Action-IRC
+n14=Afternet: Random serverSERVER:irc.afternet.org:6667GROUP:Afternet
+n15=Alternativenet: Random serverSERVER:irc.altnet.org:6667GROUP:Alternativenet
+n16=AnotherNet: Random serverSERVER:irc.another.net:6667,7000GROUP:Anothernet
+n17=ArabChat: Random serverSERVER:irc.arabchat.org:6660,6661,6662GROUP:ArabChat
+n18=AstroLink: Random serverSERVER:irc.astrolink.org:6660,6662,6663GROUP:AstroLink
+n19=Asylumnet: Random serverSERVER:irc.asylum-net.org:6661,6664,7000GROUP:Asylumnet
+n20=Austnet: Random AU serverSERVER:au.austnet.org:6667GROUP:Austnet
+n21=Austnet: Random NZ serverSERVER:nz.austnet.org:6667GROUP:Austnet
+n22=Austnet: Random SG serverSERVER:sg.austnet.org:6667GROUP:Austnet
+n23=Austnet: Random US serverSERVER:us.austnet.org:6667GROUP:Austnet
+n24=AwesomeChat: Random serverSERVER:irc.awesomechat.net:6662,6665,6666GROUP:AwesomeChat
+n25=Axenet: Random serverSERVER:irc.axenet.org:6661,6664,6665GROUP:Axenet
+n26=BeyondIRC: Random serverSERVER:irc.beyondirc.net:6660,6662,6664GROUP:Beyondirc
+n27=Blabbernet: Random serverSERVER:irc.blabber.net:6667,7000GROUP:Blabbernet
+n28=Blitzed: Random serverSERVER:irc.blitzed.org:6667,7000GROUP:Blitzed
+n29=Brasirc: Random serverSERVER:irc.brasirc.net:6666,6667GROUP:Brasirc
+n30=Brasirc: BR, PA, BelemSERVER:irc.libnet.com.br:6666,6668,7777GROUP:Brasirc
+n31=Brasirc: BR, SC, FlorianopolisSERVER:irc.globalite.com.br:6667GROUP:Brasirc
+n32=Brasnet: Random European serverSERVER:eu.brasnet.org:6665,6666,6668GROUP:Brasnet
+n33=Brasnet: Random serverSERVER:irc.brasnet.org:6665,6666,6668GROUP:Brasnet
+n34=Brasnet: Random US serverSERVER:us.brasnet.org:6665,6666,6668GROUP:Brasnet
+n35=Bulgaria: Random serverSERVER:irc.bulgaria.org:6666,6668,6669GROUP:Bulgaria
+n36=CCnet: Random serverSERVER:irc.cchat.net:6667,7000GROUP:CCnet
+n37=CCnet: US, TX, DallasSERVER:irc2.cchat.net:6667,7000GROUP:CCnet
+n38=ChatArea: Random serverSERVER:irc.chatarea.net:6667GROUP:ChatArea
+n39=Chatcafe: Random serverSERVER:irc.chatcafe.net:6667GROUP:Chatcafe
+n40=ChatCentral2: Random serverSERVER:irc.cc2.org:6660,6661,6663GROUP:ChatCentral2
+n41=ChatCircuit: Random serverSERVER:irc.chatcircuit.com:6668GROUP:ChatCircuit
+n42=Chatlink: Random serverSERVER:irc.chatlink.org:6667GROUP:Chatlink
+n43=Chatnet: Random AU serverSERVER:au.chatnet.org:6667GROUP:Chatnet
+n44=Chatnet: Random EU serverSERVER:eu.chatnet.org:6667GROUP:Chatnet
+n45=Chatnet: Random US serverSERVER:us.chatnet.org:6667GROUP:Chatnet
+n46=Chatpinoy: Random serverSERVER:irc.chatpinoy.com:6667GROUP:Chatpinoy
+n47=ChatPR: Random serverSERVER:irc.chatpr.org:6667GROUP:ChatPR
+n48=Chatroom: Random serverSERVER:irc.chatroom.org:6667GROUP:Chatroom
+n49=Chatsolutions: Random serverSERVER:irc.chatsolutions.org:6667GROUP:Chatsolutions
+n50=Chatster: Random serverSERVER:irc.chatster.org:6667GROUP:Chatster
+n51=ChatX: Random serverSERVER:irc.chatx.net:6667GROUP:ChatX
+n52=CNN: CNN News discussionsSERVER:chat.cnn.com:6668,6669,7000GROUP:CNN
+n53=Coolchat: Random serverSERVER:irc.coolchat.net:6667GROUP:Coolchat
+n54=Criten: Random serverSERVER:irc.criten.net:6667GROUP:Criten
+n55=Cyberchat: Random serverSERVER:irc.cyberchat.org:6667,6668GROUP:Cyberchat
+n56=CyGanet: Random serverSERVER:irc.cyga.net:6667GROUP:CyGanet
+n57=DALnet: AS, MY, Kuala LumpurSERVER:coins.dal.net:6663,6664,6668GROUP:DALnet
+n58=DALnet: AU, AdelaideSERVER:ozbytes.dal.net:6667,7000GROUP:DALnet
+n59=DALnet: CA, BC, VancouverSERVER:vancouver.dal.net:6661,6662,6666GROUP:DALnet
+n60=DALnet: EU, DE, FrankfurtSERVER:nexgo.de.eu.dal.net:6664,6665,6669GROUP:DALnet
+n61=DALnet: EU, NO, OsloSERVER:powertech.no.eu.dal.net:6666,6667,7000GROUP:DALnet
+n62=DALnet: EU, NO, TromsoSERVER:viking.dal.net:6666,6668,6669GROUP:DALnet
+n63=DALnet: EU, SE, GoteborgSERVER:ced.dal.net:6667,7000GROUP:DALnet
+n64=DALnet: EU, SE, StockholmSERVER:paranoia.dal.net:6661,6662,6669GROUP:DALnet
+n65=DALnet: EU, UK, LondonSERVER:defiant.dal.net:6668,6669,7001GROUP:DALnet
+n66=DALnet: US, FL, HollywoodSERVER:sodre.dal.net:6663,6666,6668GROUP:DALnet
+n67=DALnet: US, IN, HebronSERVER:hebron.dal.net:6661,6664,6669GROUP:DALnet
+n68=DALnet: US, MA, NorwoodSERVER:twisted.dal.net:6663,6665,6669GROUP:DALnet
+n69=DALnet: US, MD, ManchesterSERVER:qis.md.us.dal.net:6660,6664,6668GROUP:DALnet
+n70=DALnet: US, NY, New York CitySERVER:liberty.dal.net:6662,6666,6669GROUP:DALnet
+n71=DALnet: US, OH, ToledoSERVER:glass.dal.net:6660,6661,6664GROUP:DALnet
+n72=DALnet: US, OK, TulsaSERVER:webzone.dal.net:6665,6666,6669GROUP:DALnet
+n73=Darkfire: Random serverSERVER:irc.darkfire.net:6667,7000,8000GROUP:Darkfire
+n74=Darkfyre: Random serverSERVER:irc.darkfyre.net:6667GROUP:Darkfyre
+n75=DarkMyst: Random serverSERVER:irc.darkmyst.org:6667GROUP:DarkMyst
+n76=DarkServ: Random serverSERVER:irc.darkserv.net:6664,6665,6666GROUP:DarkServ
+n77=Darktree: Random serverSERVER:irc.darktree.net:6667GROUP:Darktree
+n78=Deepspace: Disability networkSERVER:irc.deepspace.org:6667GROUP:Deepspace
+n79=Different: Random serverSERVER:irc.different.net:6667GROUP:Different
+n80=Digarix: Random serverSERVER:irc.digarix.net:6667GROUP:Digarix
+n81=Digatech: Random serverSERVER:irc.digatech.net:6667GROUP:Digatech
+n82=Digitalirc: Random serverSERVER:irc.digitalirc.net:6667GROUP:Digitalirc
+n83=Dobbernet: Random serverSERVER:irc.dobber.net:6667GROUP:Dobbernet
+n84=DragonLynk: Random serverSERVER:irc.dragonlynk.net:6661,6665,6666GROUP:DragonLynk
+n85=Dreamcast: Random serverSERVER:irc0.dreamcast.com:6667GROUP:Dreamcast
+n86=Dreamnet: Random serverSERVER:irc.dreamnet.org:6664,6665,6666GROUP:Dreamnet
+n87=DwarfStar: Random serverSERVER:irc.dwarfstar.net:6667GROUP:Dwarfstar
+n88=Dynastynet: Random serverSERVER:irc.dynastynet.net:6667GROUP:Dynastynet
+n89=EFnet: CA, AB, EdmontonSERVER:irc.powersurfr.com:6667GROUP:EFnet
+n90=EFnet: CA, ON, TorontoSERVER:irc2.magic.ca:6667GROUP:EFnet
+n91=EFnet: CA, QB, MontrealSERVER:irc.etsmtl.ca:6667GROUP:EFnet
+n92=EFnet: EU, FI, HelsinkiSERVER:efnet.cs.hut.fi:6667GROUP:EFnet
+n93=EFnet: EU, FR, ParisSERVER:irc.isdnet.fr:6667,6668,6669GROUP:EFnet
+n94=EFnet: EU, NL, AmsterdamSERVER:efnet.vuurwerk.nl:6667GROUP:EFnet
+n95=EFnet: EU, NO, HomelienSERVER:irc.homelien.no:6666,7000,7001GROUP:EFnet
+n96=EFnet: EU, RU, MoscowSERVER:irc.rt.ru:6662,6665,6668GROUP:EFnet
+n97=EFnet: EU, SE, DalarnaSERVER:irc.du.se:6666,6668,6669GROUP:EFnet
+n98=EFnet: EU, SE, SwedenSERVER:irc.light.se:6667GROUP:EFnet
+n99=EFnet: EU, UK, DemonSERVER:efnet.demon.co.uk:6665,6666,6668GROUP:EFnet
+n100=EFnet: EU, UK, LondonSERVER:irc.ins.net.uk:6665,6666,6668GROUP:EFnet
+n101=EFnet: ME, IL, InterSERVER:irc.inter.net.il:6665,6666,6668GROUP:EFnet
+n102=EFnet: US, CA, Los AngelesSERVER:irc.west.gblx.net:6667GROUP:EFnet
+n103=EFnet: US, CA, San Luis ObispoSERVER:irc.prison.net:6666,6667GROUP:EFnet
+n104=EFnet: US, CA, StanfordSERVER:irc.stanford.edu:6667GROUP:EFnet
+n105=EFnet: US, CO, ColoradoSERVER:irc.colorado.edu:5555,6665,6666GROUP:EFnet
+n106=EFnet: US, GA, Atlanta (Emory)SERVER:irc.emory.edu:6667GROUP:EFnet
+n107=EFnet: US, GA, Atlanta (Mindspring)SERVER:irc.mindspring.com:6660,6663,6668GROUP:EFnet
+n108=EFnet: US, IL, ChicagoSERVER:irc.mcs.net:6666,6667,6668GROUP:EFnet
+n109=EFnet: US, IL, ChicagoSERVER:irc.plur.net:6667GROUP:EFnet
+n110=EFnet: US, MI, Ann ArborSERVER:irc.umich.edu:6667GROUP:EFnet
+n111=EFnet: US, MN, Twin CitiesSERVER:irc.umn.edu:6665,6666,6668GROUP:EFnet
+n112=EFnet: US, NY, New YorkSERVER:irc.east.gblx.net:6667GROUP:EFnet
+n113=EgyptianIRC: Random serverSERVER:irc.egyptianirc.net:6667,6668,6669GROUP:EgyptianIRC
+n114=EntertheGame: Random serverSERVER:irc.enterthegame.com:6667,6668,6669GROUP:EntertheGame
+n115=Escaped: Random serverSERVER:irc.escaped.net:6661,6665,6668GROUP:Escaped
+n116=Esprit: Random serverSERVER:irc.esprit.net:6667GROUP:Esprit
+n117=euIRC: Random serverSERVER:irc.euirc.net:6665,6666,6668GROUP:euIRC
+n118=ExodusIRC: Random serverSERVER:irc.exodusirc.net:6662,6663,6664GROUP:ExodusIRC
+n119=FDFnet: Random serverSERVER:irc.fdf.net:6666,6668,9999GROUP:FDFnet
+n120=FEFnet: Random serverSERVER:irc.fef.net:6667GROUP:FEFnet
+n121=Forestnet: Random serverSERVER:irc.forestnet.org:6667,7000GROUP:Forestnet
+n122=FreedomChat: Random serverSERVER:chat.freedomchat.net:6667GROUP:FreedomChat
+n123=FunNet: Random serverSERVER:irc.funnet.org:6667GROUP:FunNet
+n124=Galaxynet: Random serverSERVER:irc.galaxynet.org:6662,6663,6666GROUP:GalaxyNet
+n125=Galaxynet: AU, NZ, AucklandSERVER:auckland.nz.galaxynet.org:6661,6666,6668GROUP:GalaxyNet
+n126=Galaxynet: EU, BE, OnlineSERVER:online.be.galaxynet.org:6664,6666,6668GROUP:GalaxyNet
+n127=Galaxynet: EU, SE, VltmediaSERVER:vltmedia.se.galaxynet.org:6662,6664,6666GROUP:GalaxyNet
+n128=Galaxynet: US, FL, FloridaSERVER:gymnet.us.galaxynet.org:6663,6666,6668GROUP:GalaxyNet
+n129=Galaxynet: US, WA, SeattleSERVER:freei.us.galaxynet.org:6661,6665,6666GROUP:GalaxyNet
+n130=Gamesnet: Random east US serverSERVER:east.gamesnet.net:6667GROUP:Gamesnet
+n131=Gamesnet: Random west US serverSERVER:west.gamesnet.net:6667GROUP:Gamesnet
+n132=GizNet: Random serverSERVER:irc.giznet.com:6666,6668,6669GROUP:GizNet
+n133=Globalchat: Random serverSERVER:irc.globalchat.org:6667GROUP:Globalchat
+n134=Grnet: Random EU serverSERVER:gr.irc.gr:6667,7000GROUP:GRnet
+n135=Grnet: Random serverSERVER:srv.irc.gr:6667,7000GROUP:GRnet
+n136=Grnet: Random US serverSERVER:us.irc.gr:6667,7000GROUP:GRnet
+n137=HabberNet: Random serverSERVER:irc.habber.net:6667GROUP:HabberNet
+n138=HanIRC: Random serverSERVER:irc.hanirc.org:6667GROUP:HanIRC
+n139=Hellenicnet: Random serverSERVER:irc.mirc.gr:6667,7000GROUP:Hellenicnet
+n140=Hybnet: Random serverSERVER:irc.hybnet.net:6667GROUP:Hybnet
+n141=ICQnet: Random serverSERVER:irc.icq.com:6667GROUP:ICQnet
+n142=Infatech: Random serverSERVER:irc.infatech.net:6661,6663,6666GROUP:Infatech
+n143=Infinity: Random serverSERVER:irc.infinity-irc.org:6667GROUP:Infinity
+n144=Infomatrix: Random serverSERVER:irc.infomatrix.net:6667GROUP:Infomatrix
+n145=IRC-Hispano: Random serverSERVER:irc.irc-hispano.org:6667GROUP:IRC-Hispano
+n146=IRChat: Random serverSERVER:irc.irchat.net:6661,6662,6666GROUP:IRChat
+n147=IRChat-br: Random serverSERVER:irc.irchat.com.br:6667GROUP:IRChat-br
+n148=IRCLink: EU, NO, AlesundSERVER:alesund.no.eu.irclink.net:6667,6668,6669GROUP:IRCLink
+n149=IRCLink: EU, NO, OsloSERVER:frogn.no.eu.irclink.net:6667,6668,6669GROUP:IRCLink
+n150=IRCLink: US, SC, Rock HillSERVER:rockhill.sc.us.irclink.net:6667,6668,6669GROUP:IRCLink
+n151=IRCnet: EU, IT, RandomSERVER:irc.ircd.it:6665,6666,6668GROUP:IRCnet
+n152=IRCnet: AS, JP, TokyoSERVER:irc.tokyo.wide.ad.jp:6667GROUP:IRCnet
+n153=IRCnet: AU, MelbourneSERVER:yoyo.cc.monash.edu.au:6668,6669,9990GROUP:IRCnet
+n154=IRCnet: AU, SydneySERVER:irc.usyd.edu.au:6667GROUP:IRCnet
+n155=IRCnet: EU, AT, LinzSERVER:linz.irc.at:6666,6667,6668GROUP:IRCnet
+n156=IRCnet: EU, AT, WienSERVER:vienna.irc.at:6666,6668,6669GROUP:IRCnet
+n157=IRCnet: EU, BE, BrusselsSERVER:irc.belnet.be:6667GROUP:IRCnet
+n158=IRCnet: EU, BE, ZaventemSERVER:ircnet.wanadoo.be:6661,6664,6665GROUP:IRCnet
+n159=IRCnet: EU, CZ, PragueSERVER:irc.felk.cvut.cz:6667GROUP:IRCnet
+n160=IRCnet: EU, DE, BerlinSERVER:irc.fu-berlin.de:6665,6666,6668GROUP:IRCnet
+n161=IRCnet: EU, DE, DusseldorfSERVER:irc.freenet.de:6665,6666,6668GROUP:IRCnet
+n162=IRCnet: EU, DE, StuttgartSERVER:irc.belwue.de:6665,6666,6668GROUP:IRCnet
+n163=IRCnet: EU, DK, CopenhagenSERVER:irc.ircnet.dk:6667GROUP:IRCnet
+n164=IRCnet: EU, EE, TallinnSERVER:irc.estpak.ee:6666,6667,6668GROUP:IRCnet
+n165=IRCnet: EU, FI, EspooSERVER:irc.funet.fi:6661,6663,6668GROUP:IRCnet
+n166=IRCnet: EU, FI, HelsinkiSERVER:irc.cs.hut.fi:6667GROUP:IRCnet
+n167=IRCnet: EU, FR, NiceSERVER:irc.eurecom.fr:6667GROUP:IRCnet
+n168=IRCnet: EU, FR, ParisSERVER:irc.fr.ircnet.net:6667GROUP:IRCnet
+n169=IRCnet: EU, GR, ThessalonikiSERVER:irc.ee.auth.gr:6666,6668,6669GROUP:IRCnet
+n170=IRCnet: EU, HU, BudapestSERVER:irc.elte.hu:6667GROUP:IRCnet
+n171=IRCnet: EU, IL, HaifaSERVER:ircnet.netvision.net.il:6661,6662,6663GROUP:IRCnet
+n172=IRCnet: EU, IS, ReykjavikSERVER:irc.ircnet.is:6663,6664,6668GROUP:IRCnet
+n173=IRCnet: EU, IS, ReykjavikSERVER:irc.ircnet.is:6661,6662,6666GROUP:IRCnet
+n174=IRCnet: EU, IT, RomeSERVER:irc.tin.it:6665,6666,6668GROUP:IRCnet
+n175=IRCnet: EU, LV, RigaSERVER:irc.telia.lv:6666,6668,6669GROUP:IRCnet
+n176=IRCnet: EU, NL, Amsterdam (nlnet)SERVER:irc.nl.uu.net:6661,6662,6663GROUP:IRCnet
+n177=IRCnet: EU, NL, Amsterdam (xs4all)SERVER:irc.xs4all.nl:6663,6664,6665GROUP:IRCnet
+n178=IRCnet: EU, NL, EnschedeSERVER:irc.snt.utwente.nl:6661,6662,6666GROUP:IRCnet
+n179=IRCnet: EU, NL, NijmegenSERVER:irc.sci.kun.nl:6663,6664,6668GROUP:IRCnet
+n180=IRCnet: EU, NO, OsloSERVER:irc.ifi.uio.no:6667GROUP:IRCnet
+n181=IRCnet: EU, NO, TrondheimSERVER:irc.pvv.ntnu.no:6667GROUP:IRCnet
+n182=IRCnet: EU, PL, WarsawSERVER:warszawa.irc.pl:6666,6667,6668GROUP:IRCnet
+n183=IRCnet: EU, RU, MoscowSERVER:irc.msu.ru:6667GROUP:IRCnet
+n184=IRCnet: EU, SE, LuleaSERVER:irc.ludd.luth.se:6665,6666,6668GROUP:IRCnet
+n185=IRCnet: EU, UK, London (Btnet)SERVER:chat.bt.net:6662,6663,6668GROUP:IRCnet
+n186=IRCnet: EU, UK, London (Demon)SERVER:ircnet.demon.co.uk:6665,6666,6668GROUP:IRCnet
+n187=IRCnet: EU, UK, London (Netcom)SERVER:irc.netcom.net.uk:6660,6661,6662GROUP:IRCnet
+n188=IRCnet: EU, UK, Warrington (u-net)SERVER:irc.u-net.com:6660,6661,6665GROUP:IRCnet
+n189=IRCnet: US, NY, New YorkSERVER:irc.stealth.net:6663,6664,6665GROUP:IRCnet
+n190=Irctoo: Random serverSERVER:irc.irctoo.net:6667GROUP:Irctoo
+n191=IRCworld: Random serverSERVER:irc.ircworld.org:6667GROUP:IRCworld
+n192=Israelnet: Random serverSERVER:irc.israel.net:6667GROUP:Israelnet
+n193=K0wNet: Random serverSERVER:irc.k0w.net:6661,6665,6668GROUP:K0wNet
+n194=Kewl.org: Random serverSERVER:irc.kewl.org:6667GROUP:KewlOrg
+n195=Kewl.org: EU, FR, NanterreSERVER:nanterre.fr.eu.kewl.org:6667GROUP:KewlOrg
+n196=Kewl.org: EU, UK, LondonSERVER:london.uk.eu.kewl.org:6667GROUP:KewlOrg
+n197=Kidsworld: US, CO, DenverSERVER:denver.co.us.kidsworld.org:6666,6668,6669GROUP:KidsWorld
+n198=Kidsworld: US, MD, BaltimoreSERVER:baltimore.md.us.kidsworld.org:6666,6668,6669GROUP:KidsWorld
+n199=KissLand: Random serverSERVER:irc.kissland.com:6667GROUP:KissLand
+n200=Knightnet: AF, ZA, DurbanSERVER:orc.dbn.za.knightnet.net:6667,5555GROUP:Knightnet
+n201=Knightnet: US, CA, GoldengateSERVER:goldengate.ca.us.knightnet.net:6667,5555GROUP:Knightnet
+n202=KreyNet: Random serverSERVER:irc.krey.net:6667GROUP:Kreynet
+n203=Krushnet: Random serverSERVER:irc.krushnet.org:6667GROUP:Krushnet
+n204=LagNet: Random serverSERVER:irc.lagnet.org.za:6667GROUP:LagNet
+n205=LagNet: AF, ZA, Cape TownSERVER:reaper.lagnet.org.za:6667GROUP:LagNet
+n206=LagNet: AF, ZA, JohannesburgSERVER:mystery.lagnet.org.za:6667GROUP:LagNet
+n207=Librenet: Random serverSERVER:irc.librenet.net:6667GROUP:Librenet
+n208=Lunarnetirc: Random serverSERVER:irc.lunarnetirc.org:6667GROUP:Lunarnetirc
+n209=Lunatics: Random serverSERVER:irc.lunatics.net:6667,6668,6669GROUP:Lunatics
+n210=MagicStar: Random serverSERVER:irc.magicstar.net:6667GROUP:MagicStar
+n211=MavraNet: Random serverSERVER:irc.mavra.net:6662,6663,6664GROUP:MavraNet
+n212=MediaDriven: Random serverSERVER:irc.mediadriven.com:6667,6668,6669GROUP:MediaDriven
+n213=Messique: Random serverSERVER:irc.messique.org:6661,6664,6666GROUP:Messique
+n214=Millenia: Random serverSERVER:irc.millenia.org:6664,6665,6666GROUP:Millenia
+n215=Mozilla: Random serverSERVER:irc.mozilla.org:6667,7000GROUP:Mozilla
+n216=Mysteria: Random serverSERVER:irc.mysteria.net:6667,7000GROUP:Mysteria
+n217=Mystical: Random serverSERVER:irc.mystical.net:6667,7000GROUP:Mystical
+n218=NdrsNet: Random serverSERVER:irc.ndrsnet.com:6666,6668,6669GROUP:NdrsNet
+n219=Net-France: Random serverSERVER:irc.net-france.com:6667GROUP:Net-France
+n220=Nevernet: Random serverSERVER:irc.nevernet.net:6667GROUP:Nevernet
+n221=Newnet: Random serverSERVER:irc.newnet.net:6665,6666,6667GROUP:Newnet
+n222=Newnet: EU, DE, TrustedSERVER:irc.trusted-network.de:6666,7000GROUP:Newnet
+n223=Newnet: EU, UK, OasisSERVER:irc.oasis-net.net:6666,7000GROUP:Newnet
+n224=Newnet: NZ, AucklandSERVER:irc.uplink.net.nz:6661,6662,6666GROUP:Newnet
+n225=Newnet: US, CA, FlagglerockSERVER:irc.fragglerock.org:6666,7000GROUP:Newnet
+n226=Newnet: US, MA, ChelmsfordSERVER:irc.chelmsford.com:6660,6665,6668GROUP:Newnet
+n227=Newnet: US, VA, RandolphSERVER:irc.rma.edu:6665,6666,6668GROUP:Newnet
+n228=Nexusirc: Random serverSERVER:irc.nexusirc.org:6667GROUP:Nexusirc
+n229=Nightstar: Random serverSERVER:irc.nightstar.net:6665,6666,6668GROUP:NightStar
+n230=NitroNet: Random serverSERVER:irc.nitro.net:6667GROUP:NitroNet
+n231=Novernet: Random serverSERVER:irc.novernet.com:6665,6666,6668GROUP:Novernet
+n232=Novernet: US, GA, AugustaSERVER:irc.c-plusnet.com:6666,6668,6669GROUP:Novernet
+n233=Novernet: US, MN, MinneapolisSERVER:chat.novernet.com:6667GROUP:Novernet
+n234=Othernet: Random serverSERVER:irc.othernet.org:6667GROUP:Othernet
+n235=Othernet: US, FL, MiamiSERVER:miami.fl.us.othernet.org:6667GROUP:Othernet
+n236=Othernet: US, MO, StLouisSERVER:stlouis.mo.us.othernet.org:6667GROUP:Othernet
+n237=Otherside: Random serverSERVER:irc.othersideirc.net:6667GROUP:OtherSide
+n238=Outsiderz: Random serverSERVER:irc.outsiderz.com:6667GROUP:Outsiderz
+n239=OzChat: Random serverSERVER:irc.ozchat.org:6667GROUP:OzChat
+n240=OzOrg: AU, AdelaideSERVER:chariot.adelaide.oz.org:6666,6668,7000GROUP:OzOrg
+n241=OzOrg: AU, PerthSERVER:iinet.perth.oz.org:6667GROUP:OzOrg
+n242=OzOrg: AU, SydneySERVER:aussie.sydney.oz.org:6668,6669,7000GROUP:OzOrg
+n243=Pinoycentral: Random serverSERVER:chat.abs-cbn.com:6667GROUP:Pinoycentral
+n244=Planetarion: Random serverSERVER:irc.planetarion.com:6667GROUP:Planetarion
+n245=PowerChat: Random serverSERVER:irc.powerchat.org:6954,6956,6999GROUP:PowerChat
+n246=Pseudonet: Random serverSERVER:irc.pseudonet.org:6667GROUP:Pseudonet
+n247=PTlink: Random serverSERVER:irc.ptlink.net:6667GROUP:PTlink
+n248=PTnet: EU, PT, FaroSERVER:ualg.ptnet.org:6667GROUP:PTnet
+n249=PTnet: EU, PT, LisboaSERVER:telepac2.ptnet.org:6667GROUP:PTnet
+n250=QChat: Random serverSERVER:irc.qchat.net:6667GROUP:QChat
+n251=QuakeNet: Random serverSERVER:irc.quakenet.eu.org:6667,6668,6669GROUP:QuakeNet
+n252=Raptanet: Random serverSERVER:irc.rapta.net:6667GROUP:Raptanet
+n253=Raptornet: Random serverSERVER:irc.raptornet.org:6667GROUP:Raptornet
+n254=Realirc: Random serverSERVER:irc.realirc.org:6667GROUP:Realirc
+n255=Rebelchat: Random serverSERVER:irc.rebelchat.org:6667GROUP:Rebelchat
+n256=Red-Latina: Random serverSERVER:irc.red-latina.org:6667GROUP:Red-Latina
+n257=Red-Latina: NA, MX, SanJoseSERVER:irc.dalsom.net:6666,6667GROUP:Red-Latina
+n258=RedeBrasil: BR, CE, CearaSERVER:irc.linline.com.br:6666,7000,7001GROUP:RedeBrasil
+n259=RedeBrasil: BR, PE, RecifeSERVER:irc.hotlink.com.br:6665,6666,7000GROUP:RedeBrasil
+n260=RedeBrasil: BR, PR, ParanaSERVER:irc.intermam.com.br:6660,6661,6662GROUP:RedeBrasil
+n261=RedeBrasil: BR, SP, Sao PauloSERVER:irc.aserver.com.br:6662,6666,7000GROUP:RedeBrasil
+n262=RedeSul: BR, PR, MaringaSERVER:irc.wnet.com.br:6667GROUP:RedeSul
+n263=RedeSul: BR, SC, BlumenauSERVER:irc.braznet.com.br:6667,9001GROUP:RedeSul
+n264=RedLatona: Random serverSERVER:irc.redlatona.net:6667,6668GROUP:RedLatona
+n265=RekorNet: Random serverSERVER:irc.rekor.net:6665,6668,6669GROUP:RekorNet
+n266=Relicnet: Random serverSERVER:irc.relic.net:6667GROUP:Relicnet
+n267=Relicnet: US, MA, CycloneSERVER:cyclone.us.relic.net:6661,6662,6663GROUP:Relicnet
+n268=Risanet: Random serverSERVER:irc.risanet.com:6667,6668,6669GROUP:Risanet
+n269=Rusnet: EU, RU, TomskSERVER:irc.tsk.ru:7771,7773,7774GROUP:Rusnet
+n270=Rusnet: EU, RU, VladivostokSERVER:irc.vladivostok.ru:6669,7771,7774GROUP:Rusnet
+n271=Rusnet: EU, UA, KievSERVER:irc.kar.net:6669,7770,7774GROUP:Rusnet
+n272=Sandnet: Random serverSERVER:irc.sandnet.net:6660,6662,6668GROUP:Sandnet
+n273=Sandnet: US, CA, MysticSERVER:mystic.tides.sandnet.net:6662,6665,6666GROUP:Sandnet
+n274=Sandnet: US, NJ, DuneBuggySERVER:dunebuggy.nj.sandnet.net:6661,6662,6666GROUP:Sandnet
+n275=Scunc: Random serverSERVER:irc.scunc.net:6667GROUP:Scunc
+n276=SexNet: Random serverSERVER:irc.sexnet.org:6667GROUP:SexNet
+n277=SgNet: Random serverSERVER:irc.sgnet.org:6661,6663,6668GROUP:SgNet
+n278=ShadowFire: Random serverSERVER:irc.shadowfire.org:6667GROUP:ShadowFire
+n279=ShadowWorld: Random serverSERVER:irc.shadowworld.net:6667GROUP:shadowWorld
+n280=SideNet: Random serverSERVER:irc.sidenet.org:6661,6663,6666GROUP:SideNet
+n281=Skyyenet: US, VA, ArlingtonSERVER:arlington.va.us.skyyenet.org:6667GROUP:Skyyenet
+n282=Slashnet: Random serverSERVER:irc.slashnet.org:6667GROUP:Slashnet
+n283=Solarchat: Random serverSERVER:irc.solarchat.net:6667,7000GROUP:Solarchat
+n284=Sorcerynet: Random serverSERVER:irc.sorcery.net:6667,7000,9000GROUP:Sorcery
+n285=Sorcerynet: EU, SE, KarlskronaSERVER:nexus.sorcery.net:6667,7000,9000GROUP:Sorcery
+n286=Sorcerynet: US, CA, Palo AltoSERVER:kechara.sorcery.net:6667,7000,9000GROUP:Sorcery
+n287=Spamnet: Random serverSERVER:irc.spamnet.org:6667,6668,6669GROUP:Spamnet
+n288=StarChat: Random serverSERVER:irc.starchat.net:6668,6669,7000GROUP:StarChat
+n289=StarChat: AU, QLD, SouthernCrossSERVER:boomer.qld.au.starchat.net:6668,6669,7000GROUP:StarChat
+n290=StarChat: EU, NO, AskerSERVER:reality.no.eu.starchat.net:6668,6669,7000GROUP:StarChat
+n291=StarChat: US, CA, San JoseSERVER:sand.ca.us.starchat.net:6668,6669,7000GROUP:StarChat
+n292=StarLink-irc: Random serverSERVER:irc.starlink-irc.org:6667GROUP:starlink-irc
+n293=StarLink-irc: US, MI, RochesterSERVER:rochester.mi.us.starlink-irc.org:6667GROUP:Starlink-irc
+n294=StarLink-irc: US, TX, HoustonSERVER:houston.tx.us.starlink-irc.org:6667GROUP:Starlink-irc
+n295=StarLink Org: US, CO, DenverSERVER:denver.co.us.starlink.org:6660,6662,6666GROUP:StarlinkOrg
+n296=StarLink Org: US, NC, DurhamSERVER:durham-r.nc.us.starlink.org:6661,6663,6668GROUP:StarlinkOrg
+n297=StarLink Org: US, TX, WichitaFallsSERVER:wichitafalls.tx.us.starlink.org:6666,6667,6668GROUP:StarlinkOrg
+n298=StarWars-IRC: Random serverSERVER:irc.starwars-irc.net:6663,6664,6665GROUP:StarWars-IRC
+n299=Stormdancing: Random serverSERVER:irc.stormdancing.net:6664,6668,7000GROUP:Stormdancing
+n300=Sub-city: Random serverSERVER:irc.sub-city.net:6668,6669,7000GROUP:Sub-city
+n301=Superchat: Random serverSERVER:irc.superchat.org:6660,6664,6665GROUP:Superchat
+n302=Superonline: Random serverSERVER:irc.superonline.com:6663,6664,6669GROUP:Superonline
+n303=Sysopnet: Random serverSERVER:irc.sysopnet.org:6666,6667,6668GROUP:Sysopnet
+n304=Techdreams: Random serverSERVER:irc.techdreams.net:6667GROUP:Techdreams
+n305=Telstra: Random serverSERVER:irc.telstra.com:6667,6668,6669GROUP:Telstra
+n306=TR-net: EU, TR, AnkaraSERVER:irc.dominet.com.tr:6667GROUP:TR-net
+n307=TR-net: EU, Tr, IstanbulSERVER:irc.teklan.com.tr:6667GROUP:TR-net
+n308=TRcom: Random serverSERVER:irc.trcom.net:6666,6668,6669GROUP:TRcom
+n309=Tri-net: Random serverSERVER:irc.tri-net.org:6667GROUP:Tri-net
+n310=UltraIRC: Random serverSERVER:irc.ultrairc.net:6667GROUP:UltraIRC
+n311=Undernet: CA, ON, TorontoSERVER:toronto.on.ca.undernet.org:6661,6662,6666GROUP:Undernet
+n312=Undernet: CA, QC, MontrealSERVER:montreal.qu.ca.undernet.org:6660,6661,6664GROUP:Undernet
+n313=Undernet: EU, AT, GrazSERVER:graz.at.eu.undernet.org:6661,6663,6668GROUP:Undernet
+n314=Undernet: EU, BE, AntwerpSERVER:flanders.be.eu.undernet.org:6660,6662,6663GROUP:Undernet
+n315=Undernet: EU, BE, BrusselsSERVER:brussels.be.eu.undernet.org:6661,6663,6668GROUP:Undernet
+n316=Undernet: EU, FR, CaenSERVER:caen.fr.eu.undernet.org:6666,6668,6669GROUP:undernet
+n317=Undernet: EU, FR, ParisSERVER:paris.fr.eu.undernet.org:6662,6663,6666GROUP:Undernet
+n318=Undernet: EU, NL, DiemenSERVER:diemen.nl.eu.undernet.org:6665,6666,6668GROUP:Undernet
+n319=Undernet: EU, NL, HaarlemSERVER:haarlem.nl.eu.undernet.org:6660,6662,6666GROUP:Undernet
+n320=Undernet: EU, NO, OsloSERVER:oslo.no.eu.undernet.org:6662,6664,6668GROUP:Undernet
+n321=Undernet: EU, SE, StockholmSERVER:stockholm.se.eu.undernet.org:6661,6662,6664GROUP:Undernet
+n322=Undernet: EU, UK, LondonSERVER:london.uk.eu.undernet.org:6666,6668,6669GROUP:Undernet
+n323=Undernet: EU, UK, SurreySERVER:surrey.uk.eu.undernet.org:6662,6665,6666GROUP:Undernet
+n324=Undernet: US, CA, San DiegoSERVER:sandiego.ca.us.undernet.org:6665,6666,6668GROUP:Undernet
+n325=Undernet: US, DC, WashingtonSERVER:washington.dc.us.undernet.org:6660,6665,6668GROUP:Undernet
+n326=Undernet: US, KS, ManhattanSERVER:manhattan.ks.us.undernet.org:6662,6664,6665GROUP:Undernet
+n327=Undernet: US, NV, Las VegasSERVER:lasvegas.nv.us.undernet.org:6662,6663,6668GROUP:Undernet
+n328=Undernet: US, TX, AustinSERVER:austin.tx.us.undernet.org:6661,6663,6664GROUP:Undernet
+n329=Undernet: US, UT, SaltlakeSERVER:saltlake.ut.us.undernet.org:6663,6665,6666GROUP:Undernet
+n330=Undernet: US, VA, ArlingtonSERVER:arlington.va.us.undernet.org:6661,6663,6665GROUP:Undernet
+n331=Undernet: US, VA, McLeanSERVER:mclean.va.us.undernet.org:6666,6668,6669GROUP:Undernet
+n332=UnderZ: Random serverSERVER:irc.underz.org:6667,6668GROUP:UnderZ
+n333=UnionLatina: Random serverSERVER:irc.unionlatina.org:6667GROUP:UnionLatina
+n334=UnitedChat Net: Random serverSERVER:irc.unitedchat.net:6667GROUP:UnitedchatNet
+n335=UnitedChat Org: Random serverSERVER:irc.unitedchat.org:6667GROUP:UnitedchatOrg
+n336=Univers: Random serverSERVER:irc.univers.org:6665,6666,6668GROUP:Univers
+n337=Vidgamechat: Random serverSERVER:irc.vidgamechat.com:6667GROUP:Vidgamechat
+n338=Virtuanet: Random serverSERVER:irc.virtuanet.org:6662,6666,6669GROUP:Virtuanet
+n339=Vitamina: Random serverSERVER:irc-rr.vitamina.ca:6667GROUP:Vitamina
+n340=Warpednet: Random serverSERVER:irc.warped.net:6667GROUP:Warpednet
+n341=Webnet: Random serverSERVER:irc.webchat.org:6668,6669,7000GROUP:Webnet
+n342=Webnet: US, AL, DothanSERVER:wiregrass.al.us.webchat.org:6668,6669,7000GROUP:Webnet
+n343=Webnet: US, CA, Santa ClaraSERVER:webmaster.ca.us.webchat.org:6662,6663,6664GROUP:Webnet
+n344=Webnet: US, MA, BostonSERVER:greennet.ma.us.webchat.org:6668,6669,7000GROUP:Webnet
+n345=WonKnet: Random serverSERVER:irc.wonk.net:6668,6669,7000GROUP:Wonknet
+n346=WorldIRC: Random serverSERVER:irc.worldirc.org:6661,6662,6665GROUP:WorldIRC
+n347=Xevion: Random serverSERVER:irc.xevion.net:6667,7000GROUP:Xevion
+n348=XNet: Random serverSERVER:irc.xnet.org:6667GROUP:XNet
+n349=XWorld: Random serverSERVER:irc.xworld.org:6667GROUP:XWorld
+n350=ZAnet Net: AF, ZA, CI (lia)SERVER:lia.zanet.net:6667GROUP:ZAnetNet
+n351=ZAnet Net: AF, ZA, MWeb (timewiz)SERVER:timewiz.zanet.net:6667GROUP:ZAnetNet
+n352=ZAnet Org: AF, ZA, Cape Town (gaspode)SERVER:gaspode.zanet.org.za:6667GROUP:ZAnetOrg
+n353=ZAnet Org: AF, ZA, Johannesburg (is)SERVER:is.zanet.org.za:6667GROUP:ZAnetOrg
+n354=ZAnet Org: AF, ZA, Midrand (ethereal)SERVER:ethereal.zanet.org.za:6660,6666GROUP:ZAnetOrg
+n355=ZiRC: Random serverSERVER:irc.zirc.org:6660,6662,6665GROUP:ZiRC
+n356=ZUHnet: Random serverSERVER:irc.zuh.net:6667GROUP:ZUHnet
+n357=Zurna: Random serverSERVER:irc.zurna.net:6667GROUP:Zurna
diff --git a/ksirc/KSOpenkSirc/servers.txt b/ksirc/KSOpenkSirc/servers.txt
new file mode 100644
index 00000000..a61b0199
--- /dev/null
+++ b/ksirc/KSOpenkSirc/servers.txt
@@ -0,0 +1,654 @@
+Random:Random AU EFnet server:au.rr.efnet.net:6667:
+Random:Random AU IRCnet server:au.ircnet.org:6667:
+Random:Random CA EFnet server:ca.rr.efnet.net:6667:
+Random:Random EFnet server:irc.chat.org:6667:
+Random:Random EU DALnet server:irc.eu.dal.net:6667:
+Random:Random EU DALnet server:irc.eu.dal.net:7000:
+Random:Random EU EFnet server:eu.rr.efnet.net:6667:
+Random:Random EU IRCnet server:eu.ircnet.org:6665,6666,6668:
+Random:Random EU Undernet server:eu.undernet.org:6667:
+Random:Random Freenode server:irc.freenode.net:6667:
+Random:Random US DALnet server:irc.dal.net:6662,6663,6664:
+Random:Random US DALnet server:irc.dal.net:7000:
+Random:Random US EFnet server:us.rr.efnet.net:6667:
+Random:Random US IRCnet server:us.ircnet.org:6665,6666,6668:
+Random:Random US Undernet server:us.undernet.org:6667:
+Accessirc:Random server:irc.accessirc.net:6667:
+Acestar:Random server:irc.acestar.org:6667:
+Action-IRC:Random server:irc.action-irc.net:6660,6662,6664:
+Afternet:Random server:irc.afternet.org:6667:
+Afternet:US, CA, San Diego:blacklodge.c2.org:6667:
+Afternet:US, LA, Ruston:scorpion.latech.edu:6667:
+Afternet:US, OH, Columbus:irc.coldfusion.net:6667:
+Afternet:US, OR, Portland:agora.rdrop.com:6667:
+Alternativenet:Random server:irc.altnet.org:6667:
+AnotherNet:Random server:irc.another.net:6667,7000:
+Anothernet:US, CA, Los Angeles:sunrise.ca.us.another.net:6667:
+Anothernet:US, CA, Morgan Hill:neato.ca.us.another.net:6667:
+Anothernet:US, VT, Burlington:together.vt.us.another.net:6667:
+ArabChat:Random server:irc.arabchat.org:6660,6661,6662:
+AstroLink:Random server:irc.astrolink.org:6660,6662,6663:
+Asylumnet:Random server:irc.asylum-net.org:6661,6664,7000:
+Austnet:AS, Singapore:ntu.sg.austnet.org:6667:
+Austnet:AU, Melbourne:aussie.au.austnet.org:6667,6668:
+Austnet:AU, Sydney:sydney.au.austnet.org:6667,6668:
+Austnet:CA, ON, Toronto:insane.ca.austnet.org:6667,6668:
+Austnet:Random AU server:au.austnet.org:6667:
+Austnet:Random NZ server:nz.austnet.org:6667:
+Austnet:Random SG server:sg.austnet.org:6667:
+Austnet:Random US server:us.austnet.org:6667:
+Austnet:US, CA, Santa Clara:webmaster.us.austnet.org:6667,6668:
+Austnet:US, FL, Wizard:wizard.us.austnet.org:6667,6668:
+Austnet:US, PA, Wallaby:wallaby.us.austnet.org:6667,6668:
+AwesomeChat:Random server:irc.awesomechat.net:6662,6665,6666:
+Axenet:Random server:irc.axenet.org:6661,6664,6665:
+BeyondIRC:Random server:irc.beyondirc.net:6660,6662,6664:
+BeyondIRC:US, AL, Snowhill:irc.snowhill.com:6667,6668,6669,6670:
+BeyondIRC:US, CA, Los Angeles:babylon.beyondirc.net:6667,6668,6669:
+BeyondIRC:US, MO, Jefferson City:irc.telcentral.com:6667:
+Blabbernet:Random server:irc.blabber.net:6667,7000:
+Blitzed:Random server:irc.blitzed.org:6667,7000:
+BrasIRC:Brazil, PI, Teresina:irc.ranet.com.br:6667:
+BrasIRC:Brazil, PR, Curitiba:irc2.kanopus.com.br:6667:
+BrasIRC:Brazil, RJ, Rio de Janeiro:irc.ism.com.br:6667:
+BrasIRC:Brazil, SP, Santos:irc.iron.com.br:6667:
+BrasIRC:Brazil, Starcom:irc.stc.com.br:6667:
+BrasIRC:US, FL, Miami:irc2.sodre.net:6667:
+Brasilnet:Brazil, BA, Bahia:irc.magiclink.com.br:6667,6668,6669,7000,7001,7002:
+Brasilnet:Brazil, BA, Salvador:irc.nway.com.br:6667,6668,6669,7000,7001,7002:
+Brasilnet:Brazil, GO, Brasilia (ab):irc.abordo.com.br:6667,6668,6669,7000,7001,7002:
+Brasilnet:Brazil, GO, Brasilia (pc):irc.persocom.com.br:6667,6668,6669,7000,7001,7002:
+Brasilnet:Brazil, PE, Caruaru:irc.netstage.com.br:6667,6668,6669,7000,7001,7002:
+Brasilnet:Brazil, PE, Recife:irc.elogica.com.br:6667,6668,6669,7000,7001,7002:
+Brasirc:BR, PA, Belem:irc.libnet.com.br:6666,6668,7777:
+Brasirc:BR, SC, Florianopolis:irc.globalite.com.br:6667:
+Brasirc:Random server:irc.brasirc.net:6666,6667:
+Brasnet:Brazil, DF, Brasilia:irc.americasnet.com.br:6667:
+Brasnet:Brazil, RJ, Rio de Janeiro:irc.pontocom.com.br:6667:
+Brasnet:Brazil, SP, Campinas:irc.correionet.com.br:6667:
+Brasnet:Brazil, SP, Sao Paulo:irc.cpunet.com.br:6667:
+Brasnet:Random European server:eu.brasnet.org:6665,6666,6668:
+Brasnet:Random US server:us.brasnet.org:6665,6666,6668:
+Brasnet:Random server:irc.brasnet.org:6665,6666,6668:
+Brasnet:US, Americasnet:americasnet.usa.brasnet.org:6667:
+Bulgaria:Random server:irc.bulgaria.org:6666,6668,6669:
+CCnet:Random server:irc.cchat.net:6667,7000:
+CCnet:US, TX, Dallas:irc2.cchat.net:6667,7000:
+CNN:CNN News discussions:chat.cnn.com:6668,6669,7000:
+ChatArea:Random server:irc.chatarea.net:6667:
+ChatCentral2:Random server:irc.cc2.org:6660,6661,6663:
+ChatCircuit:Random server:irc.chatcircuit.com:6668:
+ChatPR:Random server:irc.chatpr.org:6667:
+ChatX:Random server:irc.chatx.net:6667:
+Chatcafe:Random server:irc.chatcafe.net:6667:
+Chatlink:Random server:irc.chatlink.org:6667:
+Chatnet:EU, Norway:Frogn.NO.ChatNet.Org:6667:
+Chatnet:Random AU server:au.chatnet.org:6667:
+Chatnet:Random EU server:eu.chatnet.org:6667:
+Chatnet:Random US server:us.chatnet.org:6667:
+Chatnet:US, CA, Los Angeles:LosAngeles.CA.US.ChatNet.Org:6667:
+Chatnet:US, CA, San Francisco:SF.CA.US.Chatnet.Org:6667:
+Chatnet:US, CA, Walnut Creek:WalnutCreek.CA.US.ChatNet.Org:6667:
+Chatnet:US, FL, Pensacola:Pensacola.FL.US.ChatNet.Org:6666,6667,6668,6669:
+Chatnet:US, ID, Pocatello:Pocatello.IS.US.ChatNet.Org:6667:
+Chatnet:US, KY, Louisville:Louisville.KY.US.ChatNet.Org:6667:
+Chatnet:US, MS, Tupelo:Tupelo.MS.US.Chatnet.Org:6666,6667,6668,6669:
+Chatnet:US, OK, Stillwater:Stillwater.OK.US.ChatNet.Org:6667:
+Chatnet:US, OR, Portland:Portland.OR.US.Chatnet.Org:6666,6667,6668,6669:
+Chatnet:US, SC, Rock Hill:RockHill.SC.US.ChatNet.Org:6666,6667,6668,6669:
+Chatnet:US, UT, Salt Lake City:SLC.UT.US.Chatnet.Org:6666,6667,6668,6669:
+Chatpinoy:Random server:irc.chatpinoy.com:6667:
+Chatroom:Random server:irc.chatroom.org:6667:
+Chatsolutions:Random server:irc.chatsolutions.org:6667:
+Chatster:Random server:irc.chatster.org:6667:
+Cobranet:CA, AK, Specific:Specific.AK.US.Cobra.Net:6667:
+Cobranet:CA, ON, StrathRoy:StrathRoy.ON.CA.Cobra.Net:6667:
+Cobranet:EU, UK, London:London.UK.EU.Cobra.Net:6667:
+Cobranet:US, RI, Providence:Providence.RI.US.Cobra.Net:6667:
+Coolchat:Random server:irc.coolchat.net:6667:
+Criten:Random server:irc.criten.net:6667:
+CyGanet:Random server:irc.cyga.net:6667:
+Cyberchat:Random server:irc.cyberchat.org:6667,6668:
+DALnet:AS, MY, Kuala Lumpur:coins.dal.net:6663,6664,6668:
+DALnet:AU, Adelaide:ozbytes.dal.net:6667,7000:
+DALnet:AU, New South Wales:bunyip.DAL.net:7000,6665,6666,6668,6669:
+DALnet:CA, BC, Vancouver:vancouver.dal.net:6661,6662,6666:
+DALnet:Canada, Edmonton Alb.:raptor.DAL.net:6661,6662,6663,7000:
+DALnet:Canada, Toronto:toronto.DAL.net:7000,7001,7002:
+DALnet:EU, DE, Frankfurt:nexgo.de.eu.dal.net:6664,6665,6669:
+DALnet:EU, FI, Espoo:xgw.DAL.net:6668,7000:
+DALnet:EU, NO, Oslo:powertech.no.eu.dal.net:6666,6667,7000:
+DALnet:EU, NO, Tromso:viking.dal.net:6666,6668,6669:
+DALnet:EU, SE, Goteborg:ced.dal.net:6667,7000:
+DALnet:EU, SE, Stockholm:paranoia.dal.net:6661,6662,6669:
+DALnet:EU, UK, Bristol:liberator.DAL.net:6668,6669,7000:
+DALnet:EU, UK, London:defiant.dal.net:6668,6669,7001:
+DALnet:EU, UK, London:defiant.dal.net:7000,7001,7002,7003:
+DALnet:US, CA, Davis:davis.DAL.net:6668,6669,7000:
+DALnet:US, CA, El Segundo:cyberverse.DAL.net:6667,7000:
+DALnet:US, CA, San Diego:voyager.DAL.net:6666,6667,6668,6669,7000:
+DALnet:US, CA, Santa Clara:spider.DAL.net:6668,6669,7000,7777:
+DALnet:US, CA, Sunnyvale:mindijari.DAL.net:6667,6668,6669,7000:
+DALnet:US, FL, Hollywood:sodre.dal.net:6663,6666,6668:
+DALnet:US, FL, Jacksonville:centurion.dal.net:6668,7000,7500:
+DALnet:US, IN, Hebron:hebron.dal.net:6661,6662,6663,7000:
+DALnet:US, IN, Hebron:hebron.dal.net:6661,6664,6669:
+DALnet:US, MA, Norwood:twisted.dal.net:6663,6665,6669:
+DALnet:US, MD, Manchester:qis.md.us.dal.net:6660,6664,6668:
+DALnet:US, MO, St.Louis:stlouis.DAL.net:6665,6666,6667,7000:
+DALnet:US, NC, Charlotte:uncc.DAL.net:6667,6668,6669,7000:
+DALnet:US, NY, New York City:liberty.dal.net:6662,6666,6669:
+DALnet:US, OH, Cleveland:barovia.dal.net:6661,6662,6663,7000:
+DALnet:US, OH, Toledo:glass.DAL.net:6667,7000:
+DALnet:US, OH, Toledo:glass.dal.net:6660,6661,6664:
+DALnet:US, OK, Tulsa:webzone.dal.net:6664,6665,6668,7000:
+DALnet:US, OK, Tulsa:webzone.dal.net:6665,6666,6669:
+DarkMyst:Random server:irc.darkmyst.org:6667:
+DarkServ:Random server:irc.darkserv.net:6664,6665,6666:
+Darkfire:Random server:irc.darkfire.net:6667,7000,8000:
+Darkfyre:Random server:irc.darkfyre.net:6667:
+Darktree:Random server:irc.darktree.net:6667:
+Deepspace:Disability network:irc.deepspace.org:6667:
+Different:Random server:irc.different.net:6667:
+Digarix:Random server:irc.digarix.net:6667:
+Digatech:Random server:irc.digatech.net:6667:
+Digitalirc:Random server:irc.digitalirc.net:6667:
+Dobbernet:Random server:irc.dobber.net:6667:
+DragonLynk:Random server:irc.dragonlynk.net:6661,6665,6666:
+Dreamcast:Random server:irc0.dreamcast.com:6667:
+Dreamnet:Random server:irc.dreamnet.org:6664,6665,6666:
+DwarfStar:Random server:irc.dwarfstar.net:6667:
+Dynastynet:Random server:irc.dynastynet.net:6667:
+EFnet:Australia, Telstra:efnet.telstra.net.au:6667:
+EFnet:CA, AB, Edmonton:irc.powersurfr.com:6667:
+EFnet:CA, ON, Toronto:irc2.magic.ca:6667:
+EFnet:CA, QB, Montreal:irc.etsmtl.ca:6667:
+EFnet:Canada, Cadvision:irc.cadvision.ab.ca:6667:
+EFnet:Canada, Internex:irc.io.org:6667:
+EFnet:Canada, Magic:irc.magic.mb.ca:6667:
+EFnet:Canada, McGill:irc.mcgill.ca:6667:
+EFnet:Canada, Mun:irc.cs.mun.ca:6667:
+EFnet:Canada, Polymtl:irc.polymtl.ca:6667:
+EFnet:Canada, Portal:portal.mbnet.mb.ca:6667:
+EFnet:Canada, Vianet:irc.vianet.on.ca:6667:
+EFnet:Canada, Yorku:irc.yorku.ca:6667:
+EFnet:EU, FI, Helsinki:efnet.cs.hut.fi:6667:
+EFnet:EU, FR, Paris:irc.isdnet.fr:6667,6668,6669:
+EFnet:EU, France:irc.ec-lille.fr:6667:
+EFnet:EU, Israel (ibm):irc.ibm.net.il:6667:
+EFnet:EU, Israel (tau):irc.tau.ac.il:6667:
+EFnet:EU, Israel (tech):irc.technion.ac.il:6667:
+EFnet:EU, NL, Amsterdam:efnet.vuurwerk.nl:6667:
+EFnet:EU, NO, Homelien:irc.homelien.no:6666,7000,7001:
+EFnet:EU, Netherlands:irc.nijenrode.nl:6667:
+EFnet:EU, Norway:irc.homelien.no:6667:
+EFnet:EU, RU, Moscow:irc.rt.ru:6662,6665,6668:
+EFnet:EU, SE, Dalarna:irc.du.se:6666,6668,6669:
+EFnet:EU, SE, Sweden:irc.light.se:6667:
+EFnet:EU, Sweden (gu):irc.gd.gu.se:6667:
+EFnet:EU, Sweden (lth):irc.df.lth.se:6667:
+EFnet:EU, UK, Bofh:irc.bofh.co.uk:6667:
+EFnet:EU, UK, Demon:efnet.demon.co.uk:6665,6666,6668,6669:
+EFnet:EU, UK, Demon:efnet.demon.co.uk:6665,6666,6668:
+EFnet:EU, UK, London:irc.ins.net.uk:6665,6666,6668:
+EFnet:ME, IL, Inter:irc.inter.net.il:6665,6666,6668:
+EFnet:US, AZ, Phoenix:irc.primenet.com:6667:
+EFnet:US, AZ, Tucson:irc.blackened.com:6667:
+EFnet:US, America OnLine:irc02.irc.aol.com:6667:
+EFnet:US, CA, Los Angeles:irc.west.gblx.net:6667:
+EFnet:US, CA, San Diego:irc.cerf.net:6667:
+EFnet:US, CA, San Luis Obispo:irc.prison.net:6666,6667:
+EFnet:US, CA, Stanford:irc.stanford.edu:6667:
+EFnet:US, CO, Colorado:irc.colorado.edu:5555,6665,6666:
+EFnet:US, CO, Colorado:irc.colorado.edu:6667:
+EFnet:US, FL, Miami:opus.bridge.net:6667:
+EFnet:US, GA, Atlanta (Emory):irc.emory.edu:6667:
+EFnet:US, GA, Atlanta (Mindspring):irc.mindspring.com:6660,6663,6668:
+EFnet:US, GA, Atlanta:irc.emory.edu:6667:
+EFnet:US, IL, Chicago (ais):irc.ais.net:6667:
+EFnet:US, IL, Chicago (mcs):irc.mcs.net:6667:
+EFnet:US, IL, Chicago:irc.mcs.net:6666,6667,6668:
+EFnet:US, IL, Chicago:irc.plur.net:6667:
+EFnet:US, MI, Ann Arbor:irc.umich.edu:6667:
+EFnet:US, MN, Twin Cities:irc.umn.edu:6665,6666,6668:
+EFnet:US, MO, Missouri:irc.mo.net:6667:
+EFnet:US, NY, New York:irc.east.gblx.net:6667:
+EFnet:US, Netcom0:ircd.netcom.com:6667:
+EFnet:US, Netcom1:irc.netcom.com:6667:
+EFnet:US, Netcom2:irc2.netcom.com:6667:
+EFnet:US, OK, Oklahoma:irc.ionet.net:6667:
+EFnet:US, PA, Ivyland:irc.voicenet.com:6667:
+EFnet:US, TX, Houston (Phoenix):irc.phoenix.net:6667:
+EFnet:US, TX, Houston (University):irc.tech.uh.edu:6667:
+EFnet:US, VA, Herndon:irc.psinet.com:6667:
+EFnet:US, WA, Seattle:irc.sprynet.com:6667:
+EICN:AU, Perth:Perth.WA.AU.EarthInt.Net:6667:
+EICN:EU, FI, Espoo:FOO.FI.EarthInt.Net:6667:
+EICN:US, FL, Tampa:Shadow.FL.US.EarthInt.Net:6667:
+EgyptianIRC:Random server:irc.egyptianirc.net:6667,6668,6669:
+EntertheGame:Random server:irc.enterthegame.com:6667,6668,6669:
+Escaped:Random server:irc.escaped.net:6661,6665,6668:
+Esprit:Random server:irc.esprit.net:6667:
+ExodusIRC:Random server:irc.exodusirc.net:6662,6663,6664:
+FDFnet:Random server:irc.fdf.net:6666,6668,9999:
+FEFnet:Random server:irc.fef.net:6667:
+FEFnet:UK, Quantum:quantum.uk.fef.net:6667:
+FEFnet:US, AZ, Phoenix:stf.fef.net:6667:
+FEFnet:US, CA, San Jose:vendetta.fef.net:6667:
+FEFnet:US, DC, Auburn:blizzard.fef.net:6667:
+FEFnet:US, NY, Long Island:liii.fef.net:6667:
+Forestnet:Random server:irc.forestnet.org:6667,7000:
+FreedomChat:Random server:chat.freedomchat.net:6667:
+Freenode:Random server:irc.freenode.net:6667:
+FunNet:Random server:irc.funnet.org:6667:
+GalaxyNet:AS, Singapore:pacific.sg.galaxynet.org:6667:
+GalaxyNet:AU, NZ, Auckland:auckland.nz.galaxynet.org:6666,6667,6668:
+GalaxyNet:Canada, Vancouver:vancouver.bc.ca.galaxynet.org:6667:
+GalaxyNet:EU, NO, Oslo:oslo.no.galaxynet.org:6666,6667,6668:
+GalaxyNet:US, Atlanta:atlanta.ga.us.galaxynet.org:6667:
+Galaxynet:AU, NZ, Auckland:auckland.nz.galaxynet.org:6661,6666,6668:
+Galaxynet:EU, BE, Online:online.be.galaxynet.org:6664,6666,6668:
+Galaxynet:EU, SE, Vltmedia:vltmedia.se.galaxynet.org:6662,6664,6666:
+Galaxynet:Random server:irc.galaxynet.org:6662,6663,6666:
+Galaxynet:US, FL, Florida:gymnet.us.galaxynet.org:6663,6666,6668:
+Galaxynet:US, WA, Seattle:freei.us.galaxynet.org:6661,6665,6666:
+Gamesnet:Random east US server:east.gamesnet.net:6667:
+Gamesnet:Random west US server:west.gamesnet.net:6667:
+GammaNet:US, Alfheim:Alfheim.NJ.US.gamma.net:6667:
+GammaNet:US, Chromium:Chromium.VA.US.gamma.net:6667:
+GammaNet:US, Galaxy:Galaxy.CT.US.gamma.net:6667:
+GammaNet:US, Wildstar:Wildstar.OK.US.gamma.net:6667:
+GizNet:Random server:irc.giznet.com:6666,6668,6669:
+Globalchat:Random server:irc.globalchat.org:6667:
+Grnet:Random EU server:gr.irc.gr:6667,7000:
+Grnet:Random US server:us.irc.gr:6667,7000:
+Grnet:Random server:srv.irc.gr:6667,7000:
+HabberNet:Random server:irc.habber.net:6667:
+HanIRC:Random server:irc.hanirc.org:6667:
+Hellenicnet:Random server:irc.mirc.gr:6667,7000:
+Hybnet:Random server:irc.hybnet.net:6667:
+ICQnet:Random server:irc.icq.com:6667:
+IRC-Hispano:Random server:irc.irc-hispano.org:6667:
+IRCLink:EU, NO, Alesund:alesund.no.eu.irclink.net:6667,6668,6669:
+IRCLink:EU, NO, Oslo:frogn.no.eu.irclink.net:6667,6668,6669:
+IRCLink:US, SC, Rock Hill:rockhill.sc.us.irclink.net:6667,6668,6669:
+IRCNet:AF, ZA, Sprint:irc-2.sprintlink.co.za:6667:
+IRCNet:AU, Dfat:irc.dfat.gov.au:6667:
+IRCNet:AU, Monash:yoyo.cc.monash.edu.au:6667:
+IRCNet:AU, Telstra:flute.telstra.net.au:6667:
+IRCNet:AU, Usyd:irc.usyd.edu.au:6667:
+IRCNet:CA, Quebec, Montreal:irc.openface.ca:6667:
+IRCNet:EU, Austria, Vienna:irc.wu-wien.ac.at:6667:
+IRCNet:EU, BE, Belnet:irc.belnet.be:6667:
+IRCNet:EU, DE, Berlin:irc.fu-berlin.de:6667:
+IRCNet:EU, DE, Muenchen:irc.informatik.tu-muenchen.de:6667:
+IRCNet:EU, DE, Stuttgart:irc.rus.uni-stuttgart.de:6667:
+IRCNet:EU, ES, Gondwana:gondwana.upc.es:6667:
+IRCNet:EU, FI, Espoo:irc.funet.fi:6667:
+IRCNet:EU, FI, Kuopio:irc.pspt.fi:6667:
+IRCNet:EU, FR, Eurecom:irc.eurecom.fr:6667:
+IRCNet:EU, FR, Lille:irc.ec-lille.fr:6667:
+IRCNet:EU, FR, Lyon:irc.univ-lyon1.fr:6667:
+IRCNet:EU, FR, Nice:irc.eurecom.fr:6667:
+IRCNet:EU, FR, Paris (Enst):irc.enst.fr:6667:
+IRCNet:EU, FR, Paris (Poly):sil.polytechnique.fr:6667:
+IRCNet:EU, FR, Poly:sil.polytechnique.fr:6667:
+IRCNet:EU, IS, Reykjavik:irc.isnet.is:6667:
+IRCNet:EU, IT, Pisa:irc.ccii.unipi.it:6667:
+IRCNet:EU, NL, Amsterdam:irc.xs4all.nl:6667:
+IRCNet:EU, NL, Nijmegen:irc2.sci.kun.nl:6667:
+IRCNet:EU, SE, Lulea:irc.ludd.luth.se:6667:
+IRCNet:EU, UK, London (BT):chat.btinternet.com:6667:
+IRCNet:EU, UK, London (Demon):ircnet.demon.co.uk:6665,6666,6668,6669:
+IRCNet:EU, UK, London (Imperial):stork.doc.ic.ac.uk:6667:
+IRCNet:EU, UK, London (Netcom):irc.netcom.net.uk:6667:
+IRCNet:US, AOL:irc02.irc.aol.com:6666:
+IRCNet:US, CA, Santa Clara:irc.aimnet.com:6667:
+IRCNet:US, IL, Chicago:irc.anet-chi.com:6667:
+IRCNet:US, MI, Taylor:irc.webbernet.net:6667:
+IRCNet:US, NY, New York:irc.stealth.net:6667:
+IRCNet:US, WA, Seattle:ircnet.sprynet.com:6667:
+IRChat-br:Random server:irc.irchat.com.br:6667:
+IRChat:Random server:irc.irchat.net:6661,6662,6666:
+IRCnet:AS, JP, Tokyo:irc.tokyo.wide.ad.jp:6667:
+IRCnet:AU, Melbourne:yoyo.cc.monash.edu.au:6668,6669,9990:
+IRCnet:AU, Sydney:irc.usyd.edu.au:6667:
+IRCnet:EU, AT, Linz:linz.irc.at:6666,6667,6668:
+IRCnet:EU, AT, Wien:vienna.irc.at:6666,6668,6669:
+IRCnet:EU, BE, Brussels:irc.belnet.be:6667:
+IRCnet:EU, BE, Zaventem:ircnet.wanadoo.be:6661,6664,6665:
+IRCnet:EU, CZ, Prague:irc.felk.cvut.cz:6667:
+IRCnet:EU, DE, Berlin:irc.fu-berlin.de:6665,6666,6668:
+IRCnet:EU, DE, Dusseldorf:irc.freenet.de:6665,6666,6668:
+IRCnet:EU, DE, Stuttgart:irc.belwue.de:6665,6666,6668:
+IRCnet:EU, DK, Copenhagen:irc.ircnet.dk:6667:
+IRCnet:EU, EE, Tallinn:irc.estpak.ee:6666,6667,6668:
+IRCnet:EU, FI, Espoo:irc.funet.fi:6661,6663,6668:
+IRCnet:EU, FI, Helsinki:irc.cs.hut.fi:6667:
+IRCnet:EU, FR, Nice:irc.eurecom.fr:6667:
+IRCnet:EU, FR, Paris:irc.fr.ircnet.net:6667:
+IRCnet:EU, GR, Thessaloniki:irc.ee.auth.gr:6666,6668,6669:
+IRCnet:EU, HU, Budapest:irc.elte.hu:6667:
+IRCnet:EU, IL, Haifa:ircnet.netvision.net.il:6661,6662,6663:
+IRCnet:EU, IS, Reykjavik:irc.ircnet.is:6661,6662,6666:
+IRCnet:EU, IS, Reykjavik:irc.ircnet.is:6663,6664,6668:
+IRCnet:EU, IT, Random:irc.ircd.it:6665,6666,6668:
+IRCnet:EU, IT, Rome:irc.tin.it:6665,6666,6668:
+IRCnet:EU, LV, Riga:irc.telia.lv:6666,6668,6669:
+IRCnet:EU, NL, Amsterdam (nlnet):irc.nl.uu.net:6661,6662,6663:
+IRCnet:EU, NL, Amsterdam (xs4all):irc.xs4all.nl:6663,6664,6665:
+IRCnet:EU, NL, Enschede:irc.snt.utwente.nl:6661,6662,6666:
+IRCnet:EU, NL, Nijmegen:irc.sci.kun.nl:6663,6664,6668:
+IRCnet:EU, NO, Oslo:irc.ifi.uio.no:6667:
+IRCnet:EU, NO, Trondheim:irc.pvv.ntnu.no:6667:
+IRCnet:EU, PL, Warsaw:warszawa.irc.pl:6666,6667,6668:
+IRCnet:EU, RU, Moscow:irc.msu.ru:6667:
+IRCnet:EU, SE, Lulea:irc.ludd.luth.se:6665,6666,6668:
+IRCnet:EU, UK, London (Btnet):chat.bt.net:6662,6663,6668:
+IRCnet:EU, UK, London (Demon):ircnet.demon.co.uk:6665,6666,6668:
+IRCnet:EU, UK, London (Netcom):irc.netcom.net.uk:6660,6661,6662:
+IRCnet:EU, UK, Warrington (u-net):irc.u-net.com:6660,6661,6665:
+IRCnet:US, NY, New York:irc.stealth.net:6663,6664,6665:
+IRCworld:Random server:irc.ircworld.org:6667:
+Icenet:AU, Perth:ois.perth.au.icenet.org:6667:
+Icenet:AU, Sydney:zip.syd.au.icenet.org:6667:
+Icenet:SA, Johannesburg:Snowflake.Jhb.Za.IceNet.Org:6667:
+Icenet:US, CA, San Diego:slurpee.ca.us.icenet.org:6667:
+Icenet:US, MO, Kansas City:frozen.mo.us.icenet.org:6667:
+Icenet:US, NC, Charlotte:WebServe.Nc.Us.IceNet.Org:6667:
+Icenet:US, NY, Warwick:Warwick.Ny.Us.IceNet.Org:6667:
+Icenet:US, WI, Ashland:Dockernet.Wi.Us.IceNet.Org:6667:
+Idealnet:US, Boston:irc.aasp.net:6667:
+Idealnet:US, New Jersey:irc.cps.k12.ny.us:6667:
+Idealnet:US, Tennesse:irc.pov.net:6667:
+Infatech:Random server:irc.infatech.net:6661,6663,6666:
+Infinity:Random server:irc.infinity-irc.org:6667:
+Infomatrix:Random server:irc.infomatrix.net:6667:
+IniQuity:EU, SE, Stockholm:StockHolm.SE.EU.iNiQuiTY.NeT:6667:
+IniQuity:US, KY, Louisville:Louisville.ky.us.Iniquity.net:6667:
+IniQuity:US, PA, Belle-Vernon:Belle-Vernon.PA.US.iNiQuiTY.Net:6667:
+IniQuity:US, WI, Milwaukee:Milwaukee.WI.US.iNiQuiTY.Net:6667:
+Irctoo:Random server:irc.irctoo.net:6667:
+Israelnet:Random server:irc.israel.net:6667:
+K0wNet:Random server:irc.k0w.net:6661,6665,6668:
+Kewl.org:EU, FR, Nanterre:nanterre.fr.eu.kewl.org:6667:
+Kewl.org:EU, UK, London:london.uk.eu.kewl.org:6667:
+Kewl.org:Random server:irc.kewl.org:6667:
+Kidsworld:EU, UK, Notts:notts.uk.eu.Kidsworld.org:6664,6666,6668:
+Kidsworld:US, CA, Los Angeles:Losangeles.ca.us.Kidsworld.org:6664,6666,6668:
+Kidsworld:US, CO, Denver:denver.co.us.kidsworld.org:6666,6668,6669:
+Kidsworld:US, IN, Jeffersonville:Jeffersonville.In.us.Kidsworld.org:6664,6666,6668:
+Kidsworld:US, MD, Baltimore:Baltimore.MD.US.Kidsworld.org:6664,6666,6668:
+Kidsworld:US, MD, Baltimore:baltimore.md.us.kidsworld.org:6666,6668,6669:
+Kidsworld:US, NY, New York:CCSD.NY.us.Kidsworld.org:6664,6666,6668:
+KissLand:Random server:irc.kissland.com:6667:
+Knightnet:AF, ZA, Durban:orc.dbn.za.knightnet.net:6667,5555:
+Knightnet:US, CA, Goldengate:goldengate.ca.us.knightnet.net:6667,5555:
+KreyNet:Random server:irc.krey.net:6667:
+Krushnet:Random server:irc.krushnet.org:6667:
+LagNet:AF, South Africa, Cape Town:babylon5.lagnet.org.za:6667:
+LagNet:AF, South Africa, Johannesburg:halcyon.lagnet.org.za:6667:
+LagNet:AF, South Africa, Pretoria:splash.lagnet.org.za:6667:
+LagNet:AF, ZA, Cape Town:reaper.lagnet.org.za:6667:
+LagNet:AF, ZA, Johannesburg:mystery.lagnet.org.za:6667:
+LagNet:Random server:irc.lagnet.org.za:6667:
+Librenet:Random server:irc.librenet.net:6667:
+Lunarnetirc:Random server:irc.lunarnetirc.org:6667:
+Lunatics:Random server:irc.lunatics.net:6667,6668,6669:
+MagicStar:Random server:irc.magicstar.net:6667:
+MavraNet:Random server:irc.mavra.net:6662,6663,6664:
+MediaDriven:Random server:irc.mediadriven.com:6667,6668,6669:
+Messique:Random server:irc.messique.org:6661,6664,6666:
+Millenia:Random server:irc.millenia.org:6664,6665,6666:
+Mozilla:Random server:irc.mozilla.org:6667,7000:
+Mysteria:Random server:irc.mysteria.net:6667,7000:
+Mystical:Random server:irc.mystical.net:6667,7000:
+NdrsNet:Random server:irc.ndrsnet.com:6666,6668,6669:
+Net-France:Random server:irc.net-france.com:6667:
+Nevernet:Random server:irc.nevernet.net:6667:
+NewNet:AF, South Africa:irc.sprintlink.co.za:6667:
+NewNet:EU, NL, Amsterdam:irc.desk.nl:6660,6663,6666,6669:
+NewNet:US, AZ, Phoenix:irc2.inficad.com:6667:
+NewNet:US, FL, Gainsville:irc.aohell.org:6667:
+NewNet:US, MD, Ocean City:irc.beachin.net:6667:
+NewNet:US, MI, Detroit:irc.tyme.net:6667:
+NewNet:US, NY, Buffalo:irc.localnet.com:6667:
+NewNet:US, NY, Freedom:vader.institute.wnyric.org:6667:
+NewNet:US, NY, Ysp:irc.ysp.com:6667:
+NewNet:US, TX, Houston:irc.localhost.net:6667:
+NewNet:US, WA, Seattle:irc.eskimo.com:6667:
+NewNet:US, WA, Silverdale:irc.tscnet.com:6667:
+Newnet:EU, DE, Trusted:irc.trusted-network.de:6666,7000:
+Newnet:EU, UK, Oasis:irc.oasis-net.net:6666,7000:
+Newnet:NZ, Auckland:irc.uplink.net.nz:6661,6662,6666:
+Newnet:Random server:irc.newnet.net:6665,6666,6667:
+Newnet:US, CA, Flagglerock:irc.fragglerock.org:6666,7000:
+Newnet:US, MA, Chelmsford:irc.chelmsford.com:6660,6665,6668:
+Newnet:US, VA, Randolph:irc.rma.edu:6665,6666,6668:
+Nexusirc:Random server:irc.nexusirc.org:6667:
+Nightstar:Random server:irc.nightstar.net:6665,6666,6668:
+NitroNet:Random server:irc.nitro.net:6667:
+Novernet:Random server:irc.novernet.com:6665,6666,6668:
+Novernet:US, GA, Augusta:irc.c-plusnet.com:6666,6668,6669:
+Novernet:US, MN, Minneapolis:chat.novernet.com:6667:
+Othernet:Random server:irc.othernet.org:6667:
+Othernet:US, FL, Miami:miami.fl.us.othernet.org:6667:
+Othernet:US, MO, StLouis:stlouis.mo.us.othernet.org:6667:
+Otherside:Random server:irc.othersideirc.net:6667:
+Outsiderz:Random server:irc.outsiderz.com:6667:
+OzChat:Random server:irc.ozchat.org:6667:
+OzOrg:AU, Adelaide:chariot.adelaide.oz.org:6666,6668,7000:
+OzOrg:AU, Goldcoast:onthenet.goldcoast.oz.org:6667:
+OzOrg:AU, Perth:iinet.perth.oz.org:6667:
+OzOrg:AU, Sydney (aussie):aussie.sydney.oz.org:6667:
+OzOrg:AU, Sydney (mpx):mpx.sydney.oz.org:6667:
+OzOrg:AU, Sydney:aussie.sydney.oz.org:6668,6669,7000:
+OzOrg:AU, Wollongong:wollongong.oz.org:6667:
+OzOrg:US, CA, Davis:davis.oz.org:6667:
+PTlink:Random server:irc.ptlink.net:6667:
+PTnet:EU, PT, Faro:ualg.ptnet.org:6667:
+PTnet:EU, PT, Lisboa:telepac2.ptnet.org:6667:
+ParaBolax:US, MA, Westminster:irc.parabolax.com:6667:
+ParaBolax:US, MI, Farmington Hills:irc.redhot.parabolax.com:6667:
+ParaBolax:US, NY, Madison:irc.bluewonder.parabolax.com:6667:
+Pinoycentral:Random server:chat.abs-cbn.com:6667:
+Planetarion:Random server:irc.planetarion.com:6667:
+PowerChat:Random server:irc.powerchat.org:6954,6956,6999:
+Pseudonet:Random server:irc.pseudonet.org:6667:
+QChat:Random server:irc.qchat.net:6667:
+QuakeNet:Random server:irc.quakenet.eu.org:6667,6668,6669:
+Raptanet:Random server:irc.rapta.net:6667:
+Raptornet:Random server:irc.raptornet.org:6667:
+Realirc:Random server:irc.realirc.org:6667:
+Rebelchat:Random server:irc.rebelchat.org:6667:
+Red-Latina:NA, MX, SanJose:irc.dalsom.net:6666,6667:
+Red-Latina:Random server:irc.red-latina.org:6667:
+RedLatina:NA, Mexico, Guadalajara:irc.udg.mx:6667:
+RedLatina:NA, Mexico, Mexico, D.F:yuju.anahuac.mx:6667:
+RedLatina:NA, Mexico, Morelos:academ02.mor.itesm.mx:6667:
+RedLatina:NA, México, Aguascalientes:sundi.basico.uaa.mx:6667:
+RedLatona:Random server:irc.redlatona.net:6667,6668:
+RedeBrasil:BR, CE, Ceara:irc.linline.com.br:6666,7000,7001:
+RedeBrasil:BR, PE, Recife:irc.hotlink.com.br:6665,6666,7000:
+RedeBrasil:BR, PR, Parana:irc.intermam.com.br:6660,6661,6662:
+RedeBrasil:BR, SP, Sao Paulo:irc.aserver.com.br:6662,6666,7000:
+RedeSul:BR, PR, Maringa:irc.wnet.com.br:6667:
+RedeSul:BR, SC, Blumenau:irc.braznet.com.br:6667,9001:
+RekorNet:Random server:irc.rekor.net:6665,6668,6669:
+Relicnet:Random server:irc.relic.net:6667:
+Relicnet:US, MA, Cyclone:cyclone.us.relic.net:6661,6662,6663:
+Risanet:Random server:irc.risanet.com:6667,6668,6669:
+Rusnet:EU, RU, Tomsk:irc.tsk.ru:7771,7773,7774:
+Rusnet:EU, RU, Vladivostok:irc.vladivostok.ru:6669,7771,7774:
+Rusnet:EU, UA, Kiev:irc.kar.net:6669,7770,7774:
+SandNet:FL, Ocala:ocala.fl.us.sandnet.org:7000:
+SandNet:GA, Atlanta:atlanta.ga.us.sandnet.org:6667:
+SandNet:MO, Stlouis:stlouis.mo.us.sandnet.org:6667,7000:
+SandNet:TX, Laredo:laredo.tx.us.sandnet.org:6667:
+Sandnet:Random server:irc.sandnet.net:6660,6662,6668:
+Sandnet:US, CA, Mystic:mystic.tides.sandnet.net:6662,6665,6666:
+Sandnet:US, NJ, DuneBuggy:dunebuggy.nj.sandnet.net:6661,6662,6666:
+Scunc:Random server:irc.scunc.net:6667:
+SexNet:Random server:irc.sexnet.org:6667:
+SgNet:Random server:irc.sgnet.org:6661,6663,6668:
+ShadowFire:Random server:irc.shadowfire.org:6667:
+ShadowWorld:Random server:irc.shadowworld.net:6667:
+SideNet:Random server:irc.sidenet.org:6661,6663,6666:
+Skyyenet:US, VA, Arlington:arlington.va.us.skyyenet.org:6667:
+Slashnet:Random server:irc.slashnet.org:6667:
+Solarchat:Random server:irc.solarchat.net:6667,7000:
+SorceryNet:CA, ON, Jordan:blackmagic.sorcery.net:9000:
+SorceryNet:EU, DE, Hamburg:atlantis.sorcery.net:9000:
+SorceryNet:EU, NL, Amsterdam:tardis.sorcery.net:9000:
+SorceryNet:US, MA, Cambridge:kechara.sorcery.net:9000:
+SorceryNet:US, MD, Clinton:quasar.sorcery.net:9000:
+Sorcerynet:EU, SE, Karlskrona:nexus.sorcery.net:6667,7000,9000:
+Sorcerynet:Random server:irc.sorcery.net:6667,7000,9000:
+Sorcerynet:US, CA, Palo Alto:kechara.sorcery.net:6667,7000,9000:
+Spamnet:Random server:irc.spamnet.org:6667,6668,6669:
+StarChat:AU, QLD, SouthernCross:boomer.qld.au.starchat.net:6668,6669,7000:
+StarChat:EU, NO, Asker:reality.no.eu.starchat.net:6668,6669,7000:
+StarChat:Random server:irc.starchat.net:6668,6669,7000:
+StarChat:US, CA, San Jose:sand.ca.us.starchat.net:6668,6669,7000:
+StarLink Org:US, CO, Denver:denver.co.us.starlink.org:6660,6662,6666:
+StarLink Org:US, NC, Durham:durham-r.nc.us.starlink.org:6661,6663,6668:
+StarLink Org:US, TX, WichitaFalls:wichitafalls.tx.us.starlink.org:6666,6667,6668:
+StarLink-irc:Random server:irc.starlink-irc.org:6667:
+StarLink-irc:US, MI, Rochester:rochester.mi.us.starlink-irc.org:6667:
+StarLink-irc:US, TX, Houston:houston.tx.us.starlink-irc.org:6667:
+StarLink:EU, NL, Utrecht:Utrecht.NL.EU.StarLink.Org:6667:
+StarLink:US, CO, Aspen:Aspen.CO.US.StarLink.Org:6667:
+StarLink:US, CO, Denver:Denver.CO.US.StarLink.Org:6667:
+StarLink:US, FL, Miami:Miami.FL.US.StarLink.Org:6667:
+StarLink:US, SC, Rockhill:RockHill.SC.US.StarLink.Org:6667:
+StarLinkIRC:US, GA, Atlanta:Atlanta.GA.US.Starlink-IRC.Org:6667:
+StarLinkIRC:US, MI, Rochester:Rochester.MI.US.Starlink-IRC.Org:6667:
+StarLinkIRC:US, OH, Cleveland:Cleveland.OH.US.Starlink-IRC.Org:6667:
+StarNet:US, FL, Jacksonville:irc.starnet.org:6667:
+StarNet:US, NY, New york:ny.us.starnet.org:6660,6662,6664,6666,6668:
+StarNet:US, OH, Cincinatti:oh.us.starnet.org:6662,6664,6666,6667:
+StarNet:US, TX, San Antonio:irc.xtatix.com:6667:
+StarWars-IRC:Random server:irc.starwars-irc.net:6663,6664,6665:
+StormNet:NZ, Auckland:auckland.nz.stormnet.org:6667:
+StormNet:US, CA, Valencia:valencia.ca.us.stormnet.org:6667:
+StormNet:US, FL, Brandon:brandon.fl.us.stormnet.org:6667:
+StormNet:US, IN, Indianapolis:indianapolis.in.us.stormnet.org:6667:
+StormNet:US, NC, Durham:durham.nc.us.stormnet.org:6667:
+Stormdancing:Random server:irc.stormdancing.net:6664,6668,7000:
+Sub-city:Random server:irc.sub-city.net:6668,6669,7000:
+Superchat:Random server:irc.superchat.org:6660,6664,6665:
+Superchat:US, GA, Cartersville:superchat.innerx.net:6660,6662,6664,6666,6668:
+Superchat:US, LA, Houma:chat.cajun.net:6660,6662,6664,6666,6668:
+Superchat:US, NJ, New Brunswick:irc.superlink.net:6660,6662,6664,6666,6668:
+Superchat:US, PA, Pittsburgh:irc.pitnet.net:6660,6662,6664,6666,6668:
+Superchat:US, TX, Dallas:irc.airmail.net:6660,6662,6664,6666,6668:
+Superonline:Random server:irc.superonline.com:6663,6664,6669:
+Sysopnet:Random server:irc.sysopnet.org:6666,6667,6668:
+TR-net:EU, TR, Ankara:irc.dominet.com.tr:6667:
+TR-net:EU, Tr, Istanbul:irc.teklan.com.tr:6667:
+TRcom:Random server:irc.trcom.net:6666,6668,6669:
+Techdreams:Random server:irc.techdreams.net:6667:
+Telstra:Random server:irc.telstra.com:6667,6668,6669:
+Tri-net:Random server:irc.tri-net.org:6667:
+UltraIRC:Random server:irc.ultrairc.net:6667:
+UltraNet:EU, FR, Neuilly:Neuilly.FR.EU.UltraNET.Org:6668:
+UltraNet:EU, UK, London:London.UK.EU.UltraNET.Org:6667:
+UltraNet:US, MS, Vicksburg:Vicksburg.MS.US.UltraNET.Org:6667:
+UltraNet:US, PA, Philadelphia:Philadelphia.PA.US.Ultranet.Org:6667:
+UnderZ:Random server:irc.underz.org:6667,6668:
+Undergrid:US, AS, Little Rock:tomes.undergrid.com:6665,6667,6669,7000,10000:
+Undergrid:US, CA, Chatsworth:ribbit.undergrid.com:10000:
+Undergrid:US, IA, Hawarden:starwars.undergrid.com:667,7000,10000:
+Undergrid:US, OK, Oklahoma City:thor.undergrid.com:6667,7000,10000:
+Undernet:CA, ON, Toronto:toronto.on.ca.undernet.org:6661,6662,6666:
+Undernet:CA, QC, Montreal:montreal.qu.ca.undernet.org:6660,6661,6664:
+Undernet:Canada, Montreal:montreal.qu.ca.undernet.org:6667,6668,6669,7777:
+Undernet:Canada, Toronto:toronto.on.ca.undernet.org:6667,6668,6669,7777:
+Undernet:Canada, Vancouver:vancouver.bc.ca.undernet.org:6666,6667,6668,6669:
+Undernet:EU, AT, Graz:graz.at.eu.undernet.org:6661,6663,6668:
+Undernet:EU, BE, Antwerp:flanders.be.eu.undernet.org:6660,6662,6663:
+Undernet:EU, BE, Brussels:brussels.be.eu.undernet.org:6661,6663,6668:
+Undernet:EU, DE, Regensburg:regensburg.de.eu.undernet.org:6667,6668:
+Undernet:EU, FI, Espoo:espoo.fi.eu.undernet.org:6667,6668:
+Undernet:EU, FR, Caen:caen.fr.eu.undernet.org:6666,6668,6669:
+Undernet:EU, FR, Caen:caen.fr.eu.undernet.org:6667,6668:
+Undernet:EU, FR, Paris:paris.fr.eu.undernet.org:6662,6663,6666:
+Undernet:EU, NL, Amsterdam:amsterdam.nl.eu.undernet.org:6667,6668,6669,7000:
+Undernet:EU, NL, Diemen:diemen.nl.eu.undernet.org:6665,6666,6668:
+Undernet:EU, NL, Diemen:diemen.nl.eu.undernet.org:6667,6668,6669,7000:
+Undernet:EU, NL, Haarlem:haarlem.nl.eu.undernet.org:6660,6662,6666:
+Undernet:EU, NO, Oslo:oslo.no.eu.undernet.org:6662,6664,6668:
+Undernet:EU, NO, Oslo:oslo.no.eu.undernet.org:6667,6668:
+Undernet:EU, SE, Lulea:lulea.se.eu.undernet.org:6667,7000,7777:
+Undernet:EU, SE, Stockholm:stockholm.se.eu.undernet.org:6661,6662,6664:
+Undernet:EU, UK, London:london.uk.eu.undernet.org:6666,6667:
+Undernet:EU, UK, London:london.uk.eu.undernet.org:6666,6668,6669:
+Undernet:EU, UK, Surrey:surrey.uk.eu.undernet.org:6662,6665,6666:
+Undernet:NZ, Auckland:auckland.nz.undernet.org:6667:
+Undernet:US, AZ, Phoenix:phoenix.az.us.undernet.org:6667,6668,6669:
+Undernet:US, America OnLine:irc01.irc.aol.com:6667:
+Undernet:US, CA, San Diego:sandiego.ca.us.undernet.org:6665,6666,6668:
+Undernet:US, CA, SanDiego:sandiego.ca.us.undernet.org:6667,6668,7000,7777:
+Undernet:US, DC, Washington:washington.dc.us.undernet.org:6660,6665,6668:
+Undernet:US, DC, Washington:washington.dc.us.undernet.org:6661,6663,6665,6667:
+Undernet:US, IL, Chicago:chicago.il.us.Undernet.org:6667,6668,6669,7777:
+Undernet:US, KS, Manhattan:manhattan.ks.us.undernet.org:6662,6664,6665:
+Undernet:US, KS, Manhattan:manhattan.ks.us.undernet.org:6667,6668,7000,7777:
+Undernet:US, MA, Lowell:lowell.ma.us.undernet.org:6667,6668,6669,7777:
+Undernet:US, MO, Springfield:springfield.mo.us.undernet.org:6667,6668,6669,7000:
+Undernet:US, MO, St.Louis:stlouis.mo.us.undernet.org:6666,6667,6668,6669:
+Undernet:US, NV, Las Vegas:lasvegas.nv.us.undernet.org:6662,6663,6668:
+Undernet:US, PA , Pittsburg:pittsburgh.pa.us.undernet.org:6667,6668,6669:
+Undernet:US, TX, Austin:austin.tx.us.undernet.org:6661,6663,6664:
+Undernet:US, TX, Dallas:dallas.tx.us.undernet.org:6667,6668,6669:
+Undernet:US, UT, Saltlake:saltlake.ut.us.undernet.org:6663,6665,6666:
+Undernet:US, VA, Arlington:arlington.va.us.undernet.org:6661,6663,6665:
+Undernet:US, VA, Blacksburg:blacksburg.va.us.undernet.org:6667,6668,7000,7777:
+Undernet:US, VA, McLean:mclean.va.us.undernet.org:6666,6668,6669:
+UnionLatina:Random server:irc.unionlatina.org:6667:
+UnitedChat Net:Random server:irc.unitedchat.net:6667:
+UnitedChat Org:Random server:irc.unitedchat.org:6667:
+Univers:Random server:irc.univers.org:6665,6666,6668:
+Vidgamechat:Random server:irc.vidgamechat.com:6667:
+Virtuanet:Random server:irc.virtuanet.org:6662,6666,6669:
+Vitamina:Random server:irc-rr.vitamina.ca:6667:
+Warpednet:Random server:irc.warped.net:6667:
+WebNet:US, CA, Santa Clara:webmaster.ca.us.webchat.org:7000:
+WebNet:US, IL, Geneva:inil.il.us.webchat.org:7000:
+WebNet:US, MN, St.Paul:mwweb.oh.us.webchat.org:7000:
+WebNet:US, OK, Tulsa:webzone.ok.us.webchat.org:7000:
+WebNet:US, WA, Seattle:prostar.wa.us.webchat.org:7000:
+Webnet:Random server:irc.webchat.org:6668,6669,7000:
+Webnet:US, AL, Dothan:wiregrass.al.us.webchat.org:6668,6669,7000:
+Webnet:US, CA, Santa Clara:webmaster.ca.us.webchat.org:6662,6663,6664:
+Webnet:US, MA, Boston:greennet.ma.us.webchat.org:6668,6669,7000:
+WonKnet:Random server:irc.wonk.net:6668,6669,7000:
+WorldIRC:Random server:irc.worldirc.org:6661,6662,6665:
+WorldIRC:US, IL, Chicago:Chicago.Il.Us.WorldIRC.Org:6667:
+WorldIRC:US, MD, Baltimore:Baltimore.Md.US.WorldIRC.Org:6667:
+WorldIRC:US, MI, GrandRapids:GrandRapids.Mi.Us.WorldIRC.Org:6667:
+WorldIRC:US, OK, Norman:Norman.Ok.US.WorldIRC.Org:6667:
+Wwfin:US, FL, Gainesville:irc.afn.org:6667:
+Wwfin:US, IL, Champaign:prairienet.org:6667:
+Wwfin:US, MI, Grand Rapids:irc.grfn.org:6667:
+Wwfin:US, MI, Holland:irc.macatawa.org:6667:
+XNet:Random server:irc.xnet.org:6667:
+XWorld:EU, DE, Wesel:startrek.xworld.org:6667:
+XWorld:Random server:irc.xworld.org:6667:
+XWorld:US, FL, Pensacola:llama.xworld.org:6667:
+XWorld:US, KS ,Kansas City:irc.xworld.org:6667:
+XWorld:US, SC, Rockhill:chat.xworld.org:6667:
+Xevion:Random server:irc.xevion.net:6667,7000:
+ZAnet Net:AF, ZA, CI (lia):lia.zanet.net:6667:
+ZAnet Net:AF, ZA, MWeb (timewiz):timewiz.zanet.net:6667:
+ZAnet Org:AF, ZA, Cape Town (gaspode):gaspode.zanet.org.za:6667:
+ZAnet Org:AF, ZA, Johannesburg (is):is.zanet.org.za:6667:
+ZAnet Org:AF, ZA, Midrand (ethereal):ethereal.zanet.org.za:6660,6666:
+ZAnet:AF, ZA, Cape Town:gaspode.zanet.org.za:6667:
+ZAnet:AF, ZA, Cape Town:guru.zanet.org.za:6667:
+ZAnet:AF, ZA, Johannesburg:is.zanet.org.za:6667:
+ZAnet:AF, ZA, Midrand:ibi.zanet.org.za:6667:
+ZUHnet:Random server:irc.zuh.net:6667:
+ZiRC:Random server:irc.zirc.org:6660,6662,6665:
+Zurna:Random server:irc.zurna.net:6667:
+euIRC:Random server:irc.euirc.net:6665,6666,6668: