<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6612482651096757248</id><updated>2012-02-16T07:19:26.946-08:00</updated><category term='Kontes Seo'/><category term='War Script'/><category term='Download'/><category term='About IRC'/><category term='Coretanku'/><title type='text'>Belajar Seo 2010 Blogspot Template » Wordpress Themes</title><subtitle type='html'>Blog Belajar SEO Blogspot, Wordpress, Template Blogger, Themes Wp. Indonesia</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-4680311180089642258</id><published>2010-01-03T12:29:00.000-08:00</published><updated>2010-01-03T13:15:14.561-08:00</updated><title type='text'>Aku Cuma Seorang Blogger Yang Cinta Seo</title><content type='html'>postingan ini hanya ngeping ke postingan yang lain yaitu &lt;a href="http://antilogin.blogspot.com/2010/01/aku-cuma-seorang-blogger-yang-cinta-seo.html"&gt;Aku Cuma Seorang Blogger Yang Cinta Seo&lt;/a&gt; - &lt;a href="http://www.radenz.com/2010/01/aku-cuma-seorang-blogger-yang-cinta-seo.html"&gt;Aku Cuma Seorang Blogger Yang Cinta Seo&lt;/a&gt; - &lt;a href="http://pink-77.blogspot.com/2010/01/aku-cuma-seorang-blogger-yang-cinta-seo.html"&gt;Aku Cuma Seorang Blogger Yang Cinta Seo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-4680311180089642258?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/4680311180089642258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=4680311180089642258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/4680311180089642258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/4680311180089642258'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2010/01/aku-cuma-seorang-blogger-yang-cinta-seo.html' title='Aku Cuma Seorang Blogger Yang Cinta Seo'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-7216127238734214479</id><published>2010-01-01T09:09:00.000-08:00</published><updated>2010-01-01T09:17:51.820-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kontes Seo'/><title type='text'>Dukung Ridwan Yazid Jadi Bupati Bengkalis 2010-2015</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Dukung Ridwan Yazid Jadi Bupati Bengkalis 2010-2015&lt;/span&gt; karena beliau adalah orang asli mandau atau duri, jadi &lt;a href="http://antilogin.blogspot.com/2010/01/dukung-ridwan-yazid-jadi-bupati.html"&gt;&lt;span style="font-style: italic;"&gt;Dukung Ridwan Yazid Jadi Bupati Bengkalis 2010-2015&lt;/span&gt;&lt;/a&gt; adalah support dari saya untuk calon bupati bengkalis.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_E8KmKZWeSxs/Sz0-70btyFI/AAAAAAAAA08/VFWnM5_rOVk/s1600-h/Dukung+Ridwan+Yazid+Jadi+Bupati+Bengkalis+2010-2015.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 260px;" src="http://4.bp.blogspot.com/_E8KmKZWeSxs/Sz0-70btyFI/AAAAAAAAA08/VFWnM5_rOVk/s400/Dukung+Ridwan+Yazid+Jadi+Bupati+Bengkalis+2010-2015.jpg" alt="Dukung Ridwan Yazid Jadi Bupati Bengkalis 2010-2015" id="BLOGGER_PHOTO_ID_5421558723832039506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Dukung H. A. Ridwan Yazid Jadi Bupati Bengkalis 2010-2015&lt;br /&gt;&lt;br /&gt;1. Profile &amp;amp; Background&lt;br /&gt;&lt;br /&gt;Ridwan yazid adalah putra asli kelahiran mandau, kita semua tahu bahwa mandau adalah wilayah terbesar dalam kemajuan bengkalis. Nah kapan lagi putra asli mandau memimpin?, sekarang saatnya. Bapak Ridwan Yazid adalah seorang bapak atau ayah yang tidak pernah menyerah dalam menafkahi keluarganya, sifat pantang putus asa, jujur, setia dan adil membuat keluarga merasa sangat nyaman dan bangga memiliki ayah seperti bapak Ridwan Yazid.&lt;br /&gt;&lt;br /&gt;Sedikit cerita, sekitar beberapa tahun yang lalu...seorang Ridwan Yazid bukanlah siapa-siapa, hidup dengan seorang istri dan 2 orang anak (saat ini memiliki 6 orang anak). Bekerja dari subuh, jam 5 pagi - 8 malam hanya sebagai pekerja keras di sebuah PT. Anda tahu, tidak sedikit orang yang menghina bahkan mencacinya. Tapi kesabaran yang dimilikinya tidak cukup untuk membuatnya gentar!...&lt;br /&gt;&lt;br /&gt;Saya masih ingat ketika dia dan salah satu anaknya (saya) berkunjung ke rumah temannya. Saya melihat ada sebuah game, ketika itu adalah nitendo yang sedang dimainkan oleh anak temannya. Saya mencoba game tersebut, dengan mata berkaca-kaca dan sedikit senyum ketika ia mendengar perkataan saya "pa belikann itu". Saya tidak tahu apa yang ia rasakan saat itu (maklum saya masih kecil hahaha), tidak tahu bagaimana keadaan keluarga. Tapi seperti yang saya katakan sebelumnya, "Ia adalah Ayah Yang sangat kami banggakan!", mainan game tersebut sudah terletak rapi beberapa hari setelah saya meminta. Dengan wajah berseri-seri saya langsung mencoba game tersebut setelah pulang sekolah.&lt;br /&gt;&lt;br /&gt;Tahun Berganti tahun, hidup berpindah dari sebuah kota ke kota lainnya demi menafkahi keluarga (saat itu bapak ridwan yazid sudah menjadi pegawai negeri biasa). Tidak pernah putus asa dan terus berusaha, keyakinan yang dimilikinya membuat saya salut! (dunia itu berputar, kelak kita akan berada di atas, ALLAH itu maha Adil!, hal ini yang menjadi motto hidup saya sampai saat ini), akhirnya berkat kegigihannya tersebut ia akhirnya menjadi Pemimpin Mandau atau duri. Satu-satunya pemimpin yang mampu membawa angin segar bagi kemajuan wilayah mandau,,,&lt;br /&gt;&lt;br /&gt;2. Kinerja&lt;br /&gt;&lt;br /&gt;Ketika memimpin Mandau, anda semua melihat dan merasakan kemajuan yang sangat pesat. Salah satunya adalah pembangunan jalan atau perbaikan jalan. Hampir seluruh jalan di duri diperbaiki atau dibuat baru (di aspal). Awal saya datang ke duri, jalanan disana hanya dibalut tanah kuning :D.&lt;br /&gt;&lt;br /&gt;Tegas, adil, jujur, apa adanya dan tidak neko-neko adalah sifat yang sangat membuat saya kagum ketika ia memimpin mandau. Tidak ada kasus korupsi alias bersih, ramah kepada seluruh masyarakat dan tampil apa adanya (walau saat itu sudah menjadi camat mandau tapi ia selalu bersifat seperti biasa). Walaupun banyak para penjilat yang mendatanginya (padahal dulu menghina), tapi ia tetap menerimanya dengan lapang hati.&lt;br /&gt;&lt;br /&gt;Selalu memerhatikan atau turun langsung ke lapangan. Ketika memimpin, bapak ridwan yazid selalu turun ke lapangan apabila ada suatu planning atau projek ataupun permasalahan, ia juga mempertimbangkan masukan-masukan dari masyarakat lainnya. Tidak sedikit pemimpin yang hanya diam di kantor (alasan sibuk) lalu menyuruh bawahannya untuk memantau, hasilnya tentu saja tidak memuaskan padahal mereka sudah dibayar besar untuk melakukan hal tersebut. Nah hal ini sangat berbeda dengan bapak Ridwan Yazid.&lt;br /&gt;&lt;br /&gt;3. Fisi&lt;br /&gt;&lt;br /&gt;Apabila anda memepertanyakan apa fisi dari bapak Ridwan yazid?, saya hanya bisa mengatakan "Membawa Bengkalis ke arah yang lebih baik, dari segala bidang"!. Saya tidak bisa berkata banyak, karena saya tahu bagaimana bapak ridwan yazid dalam memimpin (talk less do more).&lt;br /&gt;&lt;br /&gt;Anda butuh janji atau bukti?, jika anda percaya janji-janji,,,maka saya sangat menyayangkan hal tersebut. Jika butuh bukti, maka "Ayo Dukung H. A. Ridwan Yazid, S.Sos Jadi "BUPATI BENGKALIS" 2010-2015".&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Jadi yang harus di dukung adalah ridwan yazid, oleh karena itu mari kita &lt;span style="font-weight: bold;"&gt;Dukung Ridwan Yazid Jadi Bupati Bengkalis 2010-2015&lt;/span&gt;.&lt;br /&gt;Pingback :&lt;br /&gt;&lt;a href="http://antilogin.blogspot.com/2009/12/peluang-usaha-ahasu-gnaulep.html"&gt;Peluang Usaha Ahasu Gnaulep&lt;/a&gt;.&lt;br /&gt;&lt;a href="http://antilogin.blogspot.com/2009/12/festival-museum-nusantara.html"&gt;Festival Museum Nusantara&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-7216127238734214479?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/7216127238734214479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=7216127238734214479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/7216127238734214479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/7216127238734214479'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2010/01/dukung-ridwan-yazid-jadi-bupati.html' title='Dukung Ridwan Yazid Jadi Bupati Bengkalis 2010-2015'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_E8KmKZWeSxs/Sz0-70btyFI/AAAAAAAAA08/VFWnM5_rOVk/s72-c/Dukung+Ridwan+Yazid+Jadi+Bupati+Bengkalis+2010-2015.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-4919943922165146676</id><published>2009-12-05T00:01:00.000-08:00</published><updated>2009-12-05T00:07:22.343-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kontes Seo'/><title type='text'>Hidup Untuk Berbagi</title><content type='html'>Kontes yang bertajuk &lt;strong&gt;Hidup Untuk Berbagi&lt;/strong&gt; sedang diramaikan blogger-blogger indonesia, seperti sahabat saya &lt;a href="http://antilogin.blogspot.com/"&gt;anti login&lt;/a&gt; dan &lt;a href="http://pink-77.blogspot.com/"&gt;tips seo blog&lt;/a&gt; atau akrab dipanggil pinky yang sama-sama dengan mengoptimasi keyword &lt;a href="http://antilogin.blogspot.com/2009/12/hidup-untuk-berbagi.html"&gt;Hidup Untuk Berbagi&lt;/a&gt;.&lt;br /&gt;Sepenuhnya saya dukung karena dengan slogan &lt;a href="http://pink-77.blogspot.com/2009/12/hidup-untuk-berbagi.html"&gt;Hidup Untuk Berbagi&lt;/a&gt; kita akan mendapatkan banyak manfaat, jadi terus semangat ya sob... salam dari &lt;a href="http://setrums.blogspot.com/"&gt;setrums&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-4919943922165146676?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/4919943922165146676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=4919943922165146676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/4919943922165146676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/4919943922165146676'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2009/12/hidup-untuk-berbagi.html' title='Hidup Untuk Berbagi'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-5594111889396955103</id><published>2009-12-03T06:26:00.001-08:00</published><updated>2009-12-03T06:28:11.662-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Coretanku'/><title type='text'>Mencoba Ngeblog Lagi</title><content type='html'>Setelah sekian lama blog ini saya anggurkan sekarang saya mencoba ngeblog lagi dengan blog tercinta ini. &lt;a href="http://setrums.blogspot.com/"&gt;setrums&lt;/a&gt; adalah nama organisasi kecil anak-anak listrik stm 75 purwokerto, karena saya sendiri lulusan stm 75 angkatan 2006.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-5594111889396955103?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/5594111889396955103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=5594111889396955103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/5594111889396955103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/5594111889396955103'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2009/12/mencoba-ngeblog-lagi.html' title='Mencoba Ngeblog Lagi'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-1787904519359645034</id><published>2008-04-01T10:30:00.000-07:00</published><updated>2008-04-01T11:18:51.298-07:00</updated><title type='text'>Thug's Tools for mIRC by seamaster</title><content type='html'>Thug's Tools for mIRC by seamaster&lt;br /&gt;http://www.hawkee.com/getfile.php?file_id=1429&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-1787904519359645034?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/1787904519359645034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=1787904519359645034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/1787904519359645034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/1787904519359645034'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/04/thugs-tools-for-mirc-by-seamaster.html' title='Thug&apos;s Tools for mIRC by seamaster'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-5538563975657272657</id><published>2008-04-01T10:28:00.000-07:00</published><updated>2008-04-01T10:31:08.330-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='War Script'/><title type='text'>Timed Blacklisted</title><content type='html'>Introduction&lt;br /&gt;&lt;br /&gt;this is to add a user into blacklisted for n secs ... and auto remove it after n secs. it will also read the address of all users in channel when you 1st join a channnel and you get op then it checks for blacklisted addresses. if existed they will get kicked.&lt;br /&gt;&lt;br /&gt;by:aditya&lt;br /&gt;&lt;br /&gt;on !*:join:#: {   &lt;br /&gt;  if ($hfind(blacklist,$address($nick,2),1,w)) { &lt;br /&gt;    if ($me isop $chan) { ban -ku300 $chan $nick 2 $gettok($hget(blacklist, $hfind(blacklist, $address($nick,2),1,w)),2-,32) &lt; [IP-matched] }&lt;br /&gt;    else { echo $color(info) -ta 4ALERT:12 $nick from $site is blacklisted just joined $chan }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;on !*:op:#: {&lt;br /&gt;  if ($opnick == $me) { who $chan }&lt;br /&gt;}&lt;br /&gt;on *:start:{&lt;br /&gt;  if (!$hget(blacklist)) hmake blacklist 30&lt;br /&gt;}&lt;br /&gt;raw 352:*: {&lt;br /&gt;  var %badadd = $+(*,$3,@,$4), %bn = $6&lt;br /&gt;  if ($hfind(blacklist,%badadd,1,w)) { %nickbl = $addtok(%nickbl,$6,44) | echo $color(info) -at found $6 as blaclisted }&lt;br /&gt;  halt&lt;br /&gt;}&lt;br /&gt;raw 315:*: {&lt;br /&gt;  if (!%nickbl) { halt }&lt;br /&gt;  if ($me isop $2) {&lt;br /&gt;    var %n = $numtok(%nickbl,44) &lt;br /&gt;    while (%n) {&lt;br /&gt;      if ($gettok(%nickbl,%n,44) != $me) kick $2 $gettok(%nickbl,%n,44) Blacklisted &lt;br /&gt;      dec %n&lt;br /&gt;    }&lt;br /&gt;    halt&lt;br /&gt;  } &lt;br /&gt;}&lt;br /&gt;menu nicklist {&lt;br /&gt;  &amp;Blacklisted&lt;br /&gt;  .$iif($hfind(blacklist,$address($snick(#,1),2),1,w),Del,Add): {&lt;br /&gt;    %reason = $input(type reason,e,Blacklisted) &lt;br /&gt;    %timedbl = $input(how long you will be blacklisted $snick(#,1) (in secs),e,Time Blacklisted) &lt;br /&gt;    if ($hfind(blacklist,$address($snick(#,1),2))) hdel -w blacklist $+($address($snick(#,1),2),*) | else { hadd -mu [ $+ [ %timedbl ] ] blacklist $address($snick(#,1),5) $snick(#,1) %reason | if ($me isop #) ban -k #  $snick(#,1) 2 %reason }&lt;br /&gt;  } &lt;br /&gt;  .$iif(!$hget(blacklist,0).item,$style(2)) Clear Blacklisted: hdel -w blacklist * | echo $color(info) -a REPORT: removing all Black List done...)&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-5538563975657272657?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/5538563975657272657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=5538563975657272657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/5538563975657272657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/5538563975657272657'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/04/timed-blacklisted.html' title='Timed Blacklisted'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-6852109367142430288</id><published>2008-04-01T10:23:00.000-07:00</published><updated>2008-04-01T10:30:56.585-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Download'/><title type='text'>Power Script</title><content type='html'>Power Script please download here&lt;br /&gt;http://www.hawkee.com/getfile.php?file_id=680&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-6852109367142430288?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/6852109367142430288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=6852109367142430288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/6852109367142430288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/6852109367142430288'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/04/power-script.html' title='Power Script'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-1430993297008069700</id><published>2008-04-01T10:20:00.000-07:00</published><updated>2008-04-01T10:31:08.331-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='War Script'/><title type='text'>non wilcard badwords protection</title><content type='html'>Introduction&lt;br /&gt;&lt;br /&gt;this snippet is to check bad words in channel including nick/id which will check non wilcard text or nick/id, for example you add cock as bad words then if some one type 'cockcroach' in channel it will not kick him/her, only if it find text 'cock' then the script will reject the user..same format u can use for different non wilcard scan texts. you can use the aliases to put into different events. use mIRC v6.16&lt;br /&gt;&lt;br /&gt;by:aditya&lt;br /&gt;&lt;br /&gt;;bad text protection&lt;br /&gt;alias matchword {&lt;br /&gt;  if ($hfind($1,$2,1,n)) { set %reason $hget($1,$v1) | return 1 }&lt;br /&gt;  return 0&lt;br /&gt;}&lt;br /&gt;alias checktext {&lt;br /&gt;  var %n = $numtok($strip($2-),32)&lt;br /&gt;  while (%n) {&lt;br /&gt;    if ($matchword($1,$gettok($strip($2-),%n,32))) { return $true }&lt;br /&gt;    dec %n&lt;br /&gt;  }&lt;br /&gt;  return $false&lt;br /&gt;}&lt;br /&gt;alias badnickid if (!$hget(badnick&amp;id)) .hmake badnick&amp;id 10 | hadd badnick&amp;id $1 $2-&lt;br /&gt;alias addswear if (!$hget(swear)) .hmake swear 10 | hadd swear $1 $2-&lt;br /&gt;&lt;br /&gt;on !@*:text:*:#: {  &lt;br /&gt;  if ($nick !isop $chan) &amp;&amp; ($checktext(swear,$1-)) { ban -ku60 $chan $nick %reason }&lt;br /&gt;}&lt;br /&gt;on !@*:join:#: {&lt;br /&gt;  if  ($checktext(badnick&amp;id,$nick)) || ($checktext(badnick&amp;id,$remove($deltok($gettok($fulladdress,2,33),2,64),~))) { ban -ku60 $chan $nick %reason }&lt;br /&gt;}&lt;br /&gt;;to add swear words :/addswear &lt;sweartext&gt; &lt;reason&gt;  ex: /addswear cock dont say that word again plz....&lt;br /&gt;;to add badnick or id : /badnickid &lt;banick|id&gt; &lt;reason&gt; ex: /badnickid pussy pls change your nick/id be4 joined this channel &lt;br /&gt;&lt;br /&gt;;you can create other aliases with the same format to match a non wilcard text ..like alias spam if (!$hget(spamwords)) .hmake spamwords 10 | hadd spamwords $1 $2-&lt;br /&gt;;and then use if ($checktext(spamwords,$1-)) { blablbalbla..... etc&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-1430993297008069700?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/1430993297008069700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=1430993297008069700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/1430993297008069700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/1430993297008069700'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/04/non-wilcard-badwords-protection.html' title='non wilcard badwords protection'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-8028888608536607381</id><published>2008-04-01T10:18:00.000-07:00</published><updated>2008-04-01T10:21:09.719-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='War Script'/><title type='text'>Advanced shoutcast DJ Bot</title><content type='html'>Introduction&lt;br /&gt;&lt;br /&gt;This script enables you to grab information from shoutcast/radio URL . and display them into multiple channels, and it;s also be able to be connected to multi irc servers.This bot is fit with users who are running radio websites, and it's probably the first shoutcast mirc script that capable to get information from 'two' different shoutcast servers at a time. it also has option that can record requested songs from ppl and check if the song has been played or not.&lt;br /&gt;To run it, just simply connected to irc servers and set all required inputs such as shoutcast server/ips,ports. Then when it has been connected just add someone or yourself(with different client) as the owner or dj after updated the IAL. commands will be displayed by typing for.i.e; @help in a channel window where the bot exist which it will display a list of commands according to your status, the higher you status the more complete commands you can access, there are only 3 category of users available i.e owner, dj and regular users.Some commands are included but only apply on dalnet servers that uses chanserv like @up @down for op and deop the bot, and also deop protection but all other commands work in all irc servers. All existing inputs are available just to show how to fill them with your owned datas, however it can be used to test the bot&lt;br /&gt;&lt;br /&gt;by:aditya&lt;br /&gt;&lt;br /&gt;;----[ Advanced SHOUTcast DJ Bot ]---------------&lt;br /&gt;; Filename. : shoutcast.mrc&lt;br /&gt;; Release...: v1.0  on August 2004&lt;br /&gt;; Author....: m.aditya a.k.a [|Red-X|]&lt;br /&gt;; Location..: Jakarta - Indonesia&lt;br /&gt;; Bugreport.: http://www.hawkee.com/&lt;br /&gt;; E-mail....: m_aditya@kaskus.com&lt;br /&gt;; Two shoutcast servers on Multi Servers/Channels&lt;br /&gt;;------------------------------------------------&lt;br /&gt;;start here &lt;br /&gt;alias connect_ {&lt;br /&gt;  if (%shoutcast.currentdj [ $+ [ $cid ] ] == n/a) {  unset %shoutcast.currentdj [ $+ [ $cid ] ]  }&lt;br /&gt;  if (%shoutcast.channel [ $+ [ $cid ] ]) join %shoutcast.channel [ $+ [ $cid ] ]&lt;br /&gt;  %shoutcast.pass [ $+ [ $cid ] ] = $+($r(a,z),$r(10001,19999),$r(a,z))&lt;br /&gt;}&lt;br /&gt;alias addsong hadd song $1 $2-&lt;br /&gt;alias delsong hdel song $1&lt;br /&gt;alias hdj hadd dj $+($cid,$1) $2 $3-&lt;br /&gt;alias ddj hdel dj $+($cid,$1)&lt;br /&gt;alias ownercmd return $c(resetserver) - $c(addserver) &lt;server&gt; - $c(dj) [add|del] &lt;nick&gt; - $c(up) - $c(down)&lt;br /&gt;alias -l resetcurrentdj if (%shoutcast.currentdj [ $+ [ $1 ] ] == n/a) { unset %shoutcast.currentdj [ $+ [ $1 ] ] }&lt;br /&gt;alias web return $iif($1,$+(http://,$1,:,$2,/listen.pls),n/a))&lt;br /&gt;alias -l shoutcast.currenttopic return $replace(%shoutcast.channeltopic,&lt;StationName&gt;,$iif($1,$1,n/a),&lt;CurrentDJ&gt;,$iif($2 == n/a,n/a,$2),&lt;server&gt;,$iif($3,$3,n/a),&lt;News&gt;,$iif($4,$4,n/a),&lt;Website&gt;,$iif($5,$5,n/a))&lt;br /&gt;alias -l shoutcast.currentcommand return $replace(%shoutcast.commandformat,&lt;CommandTopic&gt;,Skn $3 $+  $iif($1 == Listeners,Listeners,$iif($1 == peak,Peak Listeners,$iif($1 == bitrate,Bitrate,$iif($1 == song,Song)))),&lt;CommandValue&gt;,$2 $iif($1 == bitrate,Kbps))&lt;br /&gt;alias -l shoutcast.commandformat return &lt;CommandTopic&gt;: &lt;CommandValue&gt;&lt;br /&gt;alias -l shoutcast.channeltopic return &lt;StationName&gt; - Current DJ: &lt;CurrentDJ&gt; - Server: &lt;Server&gt; Website: &lt;website&gt; News: &lt;news&gt;&lt;br /&gt;alias set.shoutcast.method {&lt;br /&gt;  if ($2 == dj) { %shoutcast.commscommand [ $+ [ $1 ] ] = $replace(%shoutcast.commandformat,&lt;CommandTopic&gt;,Commands,&lt;CommandValue&gt;, $c(onair) - $c(offair) - $c(addnews) [1|2] &lt;news&gt;  - $c(chan) [add|del] &lt;channel&gt;) }&lt;br /&gt;  else {&lt;br /&gt;    if (%shoutcast.method [ $+ [ $1 ] ] == 1) { %shoutcast.commscommand [ $+ [ $1 ] ] = $replace(%shoutcast.commandformat,&lt;CommandTopic&gt;,Commands,&lt;CommandValue&gt;,$c(radio) $c(stat) $c(server) $c(dj) $c(listeners) $c(peak) $c(song) $c(bitrate) $c(shoutout) &lt;message&gt; $c(request) &lt;song&gt; $c(website) $c(news) $c(msg) &lt;nick&gt; &lt;message&gt;  $c(help) $c(seen) dj &lt;dj'snick&gt; $c(creator)) }&lt;br /&gt;    else { %shoutcast.commscommand [ $+ [ $1 ] ] = $replace(%shoutcast.commandformat,&lt;CommandTopic&gt;,Commands,&lt;CommandValue&gt;,$c(server) $c(dj) $c(listeners) $c(peak) $c(song) $c(bitrate) $c(shoutout) &lt;message&gt; $c(request) &lt;song&gt; $c(website) $c(news) $c(msg) &lt;nick&gt; &lt;message&gt; $c(help) $c(seen) dj &lt;dj'snick&gt; $c(creator)) }&lt;br /&gt;  }&lt;br /&gt;  if ($isid) return %shoutcast.commscommand [ $+ [ $1 ] ] &lt;br /&gt;}&lt;br /&gt;alias -l set.user.request {&lt;br /&gt;  var %x = $var(%shoutcast.server*,0)&lt;br /&gt;  var %i = 1, %shoutcast.server.temp [ $+ [ $1 ] ] &lt;br /&gt;  while (%i &lt;= %x) {&lt;br /&gt;    if ($istok(server@website@news,$2,64)) { %shoutcast.server.temp [ $+ [ $1 ] ] =  $addtok(%shoutcast.server.temp [ $+ [ $1 ] ],$iif($2,$+($iif($2 == server,http://),%shoutcast. [ $+ [ $+($2,%i) ] ],$iif($2 == server,$+(:,%shoutcast.port [ $+ [ %i ] ],/listen.pls)))),45) }&lt;br /&gt;    inc %i&lt;br /&gt;  }&lt;br /&gt;  if ($istok(server@website@news,$2,64))  { %request.command [ $+ [ $1 ] ] = $replace(%shoutcast.commandformat,&lt;CommandTopic&gt;,$2,&lt;CommandValue&gt;,%shoutcast.server.temp [ $+ [ $1 ] ]) }&lt;br /&gt;  else { %request.command [ $+ [ $1 ] ] = $replace(%shoutcast.commandformat,&lt;CommandTopic&gt;,$iif($istok(shoutout@request,$2,64),$+($2,$chr(32),from,$chr(32),$3),$2),&lt;CommandValue&gt;,$iif($istok(shoutout@request,$2,64),$iif($4,$4-,n/a),$iif($var($+(%,shoutcast.,$2,$1),1).value == n/a,n/a,$var($+(%,shoutcast.,$2,$1),1).value))) }&lt;br /&gt;}&lt;br /&gt;alias -l ctrigger {&lt;br /&gt;  var %s1 = $gettok($1,-1,46)&lt;br /&gt;  if (stat == %s1) { return Status:  $+ $iif($2 == 0,Stream down,Stream Active) Current/Peak/Max.Listeners:  $+($3,/,$4,/,$5) Current Song: $7- Bitrate: $6  }&lt;br /&gt;  elseif (listeners == %s1) { var %shoutcast.clisteners = $+(%shoutcast.listeners. [ $+ [ $2 ] ],$chr(32),with Max.,$chr(32),%shoutcast.maxlisteners. [ $+ [ $2 ] ]) | return $shoutcast.currentcommand(listeners,%shoutcast.clisteners,$3-) }&lt;br /&gt;  elseif (peak == %s1) { return $shoutcast.currentcommand(peak,%shoutcast.peak. [ $+ [ $2 ] ],$3-) }&lt;br /&gt;  elseif (bitrate == %s1) { return $shoutcast.currentcommand(bitrate,%shoutcast.bitrate. [ $+ [ $2 ] ],$3-) }&lt;br /&gt;  elseif (song == %s1) { return $shoutcast.currentcommand(song,%shoutcast.song. [ $+ [ $2 ] ],$3-) }&lt;br /&gt;}&lt;br /&gt;alias -l reguestchan {&lt;br /&gt;  if (%reg.chan [ $+ [ $2 ] ]) { %t.chan = %reg.chan [ $+ [ $2 ] ] }&lt;br /&gt;  var %n = $var(%shoutcast.server*,0), %cz = $chan(0) &lt;br /&gt;  while (%n) {&lt;br /&gt;    %s = $var(%shoutcast.server*,%n).value&lt;br /&gt;    if ($var($+(%,$1,.,$2,%t.chan,%s),1).value != $null) { return $ifmatch  }&lt;br /&gt;    dec %n&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;alias sockconnect {&lt;br /&gt;  set %nsite $var($+($chr(37),shoutcast,.,server,*),0)&lt;br /&gt;  while (%nsite) {&lt;br /&gt;    var %a = $var($+($chr(37),shoutcast,.,server,*),%nsite).value, %b = $var($+($chr(37),shoutcast,.,port,%nsite),1).value, %s = $+(shoutcast,.,%a,.,$cid,.,$1)&lt;br /&gt;    if ($sock(%s).to &lt; 10) { .notice $2 connected to %a can not be proceed..previous request under processing.. | break  } &lt;br /&gt;    elseif (%a) &amp;&amp; (%b) &amp;&amp; (%s) { echo -s -14 $+ $timestamp connecting to %a $+ : $+ %b | sockclose %s | sockopen %s %a %b }&lt;br /&gt;    if ($2 == auto) set %autoserve [ $+ [ $+($cid,%a) ] ] ok&lt;br /&gt;    dec %nsite&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;alias -l current.topic {&lt;br /&gt;  var %i = $var(%shoutcast.currenttopic*,0), %shoutcast.currenttopic.temp&lt;br /&gt;  while (%i) {  &lt;br /&gt;    %shoutcast.currenttopic.temp = $addtok(%shoutcast.currenttopic.temp,%shoutcast.currenttopic [ $+ [ %i ] ],151) &lt;br /&gt;    dec %i&lt;br /&gt;  }&lt;br /&gt;  return $addtok(Welcome to..,%shoutcast.currenttopic.temp,58)&lt;br /&gt;}&lt;br /&gt;alias -l setcurrent.topic {&lt;br /&gt;  var %x = $var(%shoutcast.server*,0)   &lt;br /&gt;  while (%x) {  &lt;br /&gt;    %shoutcast.currenttopic [ $+ [ %x ] ] = $shoutcast.currenttopic(%shoutcast.name [ $+ [ %x ] ],%shoutcast.currentdj [ $+ [ $1 ] ],$web(%shoutcast.server [ $+ [ %x ] ],%shoutcast.port [ $+ [ %x ] ]),%shoutcast.news [ $+ [ %x ] ],%shoutcast.website [ $+ [ %x ] ]) &lt;br /&gt;    dec %x&lt;br /&gt;  }  &lt;br /&gt;} &lt;br /&gt;alias -l reportallchan {&lt;br /&gt;  scid $1&lt;br /&gt;  var %i = $chan(0)&lt;br /&gt;  while (%i) {&lt;br /&gt;    if ($istok(%shoutcast.channel [ $+ [ $1 ] ],$chan(%i),44)) msg $chan(%i) $2-&lt;br /&gt;    dec %i&lt;br /&gt;  }&lt;br /&gt;  scid -r&lt;br /&gt;}&lt;br /&gt;alias -l cmd return dj!website!server!commands!news!shoutout!request!stat!listeners!peak!bitrate!song!onair!offair!addnews!chan!resetserver!addserver!restart!msg!radio!help!creator!up!down!seen&lt;br /&gt;alias -l c return $+(%shoutcast.trigger,$1)&lt;br /&gt;alias shoutcast.version return Advanced SHOUTcast DJ Bot &lt;br /&gt;alias -l restart run mirc.exe | exit&lt;br /&gt;on !*:join:$(%shoutcast.channel [ $+ [ $cid ] ]): {&lt;br /&gt;  if (!%onjoin [ $+ [ $cid ] ]) {&lt;br /&gt;    set -u5 %onjoin [ $+ [ $cid ] ] !&lt;br /&gt;    if ($level($address($nick,0)) == asdj) {&lt;br /&gt;      hdj $nick join $chan $ctime &lt;br /&gt;      pvoice 10 $chan $nick&lt;br /&gt;      if ($nick == $owner) { .msg $nick 4@Owner welcome... }&lt;br /&gt;      if (!$istok(%shoutcast.currentdj [ $+ [ $cid ] ],$nick,43)) { .msg $nick Hi..4@DJ pls..login to get the bot access | halt }&lt;br /&gt;      else { halt }&lt;br /&gt;    }&lt;br /&gt;    elseif (%ojgreet [ $+ [ $cid ] ] == on) &amp;&amp; (!%onjoin. [ $+ [ $+($cid,$chan,$site) ] ]) { &lt;br /&gt;      setcurrent.topic $cid&lt;br /&gt;      set -u600 %onjoin. [ $+ [ $+($cid,$chan,$site) ] ] !&lt;br /&gt;      set.shoutcast.method $cid&lt;br /&gt;      if (%ojnotice [ $+ [ $cid ] ] == 1) { &lt;br /&gt;        .notice $nick $current.topic &lt;br /&gt;        .timernot $+ $cid 1 2 .notice $nick %shoutcast.commscommand [ $+ [ $cid ] ]&lt;br /&gt;      }&lt;br /&gt;      else { .msg $nick $current.topic | .timermsg $+ $cid 1 2 .msg $nick %shoutcast.commscommand [ $+ [ $cid ] ] }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;on !*:part:$(%shoutcast.channel [ $+ [ $cid ] ]): {&lt;br /&gt;  if ($nick == $owner) { halt }&lt;br /&gt;  hdj $nick part $chan $ctime $1-&lt;br /&gt;  if (!%part. [ $+ [ $+($cid,$chan) ] ]) { set -u8 %part. [ $+ [ $+($cid,$chan) ] ] 1 | goto next }&lt;br /&gt;  inc %part. [ $+ [ $+($cid,$chan) ] ]&lt;br /&gt;  if (%part. [ $+ [ $+($cid,$chan) ] ] &gt;= 3) { halt }&lt;br /&gt;  :next | if (%ojgreet [ $+ [ $cid ] ] == on) {&lt;br /&gt;    if ($istok(%shoutcast.currentdj [ $+ [ $cid ] ],$nick,43)) &amp;&amp; ($level($address($nick,0)) == asdj) { .msg $nick off4@air? }   &lt;br /&gt;    else { .msg $nick thanks f4@r visit our room  }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;on !*:nick: { &lt;br /&gt;  if ($istok(%shoutcast.currentdj [ $+ [ $cid ] ],$nick,43)) {&lt;br /&gt;    %shoutcast.currentdj [ $+ [ $cid ] ] = $reptok(%shoutcast.currentdj [ $+ [ $cid ] ],$nick,$newnick,1,43)&lt;br /&gt;    hdj $nick nick $newnick $ctime&lt;br /&gt;    if ($nick == $owner) { alias owner return $newnick }&lt;br /&gt;    if (!%chnick. [ $+ [ $cid ] ]) {&lt;br /&gt;      set -u5 %chnick. [ $+ [ $cid ] ] !&lt;br /&gt;      setcurrent.topic $cid&lt;br /&gt;      var %n = $comchan($newnick,0)&lt;br /&gt;      while (%n) {  &lt;br /&gt;        if ($istok(%shoutcast.channel [ $+ [ $cid ] ],$comchan($newnick,%n),44)) {&lt;br /&gt;          if ($comchan($newnick,%n).op) &amp;&amp; (%ontopic [ $+ [ $cid ] ] == on) topic $comchan($newnick,%n) $current.topic &lt;br /&gt;          else msg $comchan($newnick,%n) $current.topic &lt;br /&gt;        }&lt;br /&gt;        dec %n&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;on ^*:quit: { &lt;br /&gt;  if ($nick == $owner) { goto end }&lt;br /&gt;  if ($istok(%shoutcast.currentdj [ $+ [ $cid ] ],$nick,43)) &amp;&amp;  (!%quit. [ $+ [ $cid ] ])  {&lt;br /&gt;    set -u10 %quit. [ $+ [ $cid ] ] 1&lt;br /&gt;    hdj $nick quit $ctime $1-&lt;br /&gt;    %shoutcast.currentdj [ $+ [ $cid ] ] = $remtok(%shoutcast.currentdj [ $+ [ $cid ] ],$nick,1,43)&lt;br /&gt;    echo $color(info2) -at :: $+ $nick left IRC remove4@ $+ $nick from dj4@list done..&lt;br /&gt;  }&lt;br /&gt;  :end | halt&lt;br /&gt;}&lt;br /&gt;;DJ Login &lt;br /&gt;on ^!*:text:*:?: {&lt;br /&gt;  if ($level($address($nick,0)) == asdj) {&lt;br /&gt;    if ($left($1,1) != $c) { goto end }&lt;br /&gt;    if (%shoutcast.currentdj [ $+ [ $cid ] ] == n/a) { set %shoutcast.currentdj [ $+ [ $cid ] ] }&lt;br /&gt;    if ($istok(%shoutcast.currentdj [ $+ [ $cid ] ],$nick,43)) { .msg $nick you have been logged..no need to re12@login | goto end }&lt;br /&gt;    if (%login [ $+ [ $+($cid,$address($nick,0)) ] ] == 3) { .msg $nick you have been 3x login4@failed..sorry. | .ignore -u600 $nick 2 | goto end }&lt;br /&gt;    inc -u600 %login [ $+ [ $+($cid,$address($nick,0)) ] ]&lt;br /&gt;    if ($1 == $c(login)) &amp;&amp; ($2 == %shoutcast.pass [ $+ [ $cid ] ]) { &lt;br /&gt;      %shoutcast.currentdj [ $+ [ $cid ] ] = $addtok(%shoutcast.currentdj [ $+ [ $cid ] ],$nick,43)&lt;br /&gt;      hdj $nick signed-in $chan $ctime &lt;br /&gt;      .msg $nick your login4@accepted&lt;br /&gt;      .timersendcmd $+ $cid $+ $nick 1 1 .raw privmsg $nick : $+ $set.shoutcast.method($cid,dj)&lt;br /&gt;      goto end&lt;br /&gt;    } &lt;br /&gt;    elseif ($1 != $c(login)) { .msg $nick wrong4@command...type $c(login) &lt;password&gt; }&lt;br /&gt;    elseif ($2 != %shoutcast.pass [ $+ [ $cid ] ]) { .msg $nick wrong4@password. } &lt;br /&gt;  }&lt;br /&gt;  :end | close -m $nick | halt &lt;br /&gt;}&lt;br /&gt;on ^!*:notice:*:?: { halt }&lt;br /&gt;on ^*:open:?:*: { if ($level($address($nick,0)) != asdj) { .msg $nick no4@message pls..I'm a BOT | close -m $nick | halt } }&lt;br /&gt;on !*:text:*:$(%shoutcast.channel [ $+ [ $cid ] ]):{&lt;br /&gt;  if ($left($1,1) != $c) || (!$istok($cmd,$remove($1,$c),33)) { halt }&lt;br /&gt;  if (!%triger. [ $+ [ $+($cid,$wildsite) ] ]) &amp;&amp; (!%smtrig [ $+ [ $+($cid,$chan) ] ]) { set -u8 %triger. [ $+ [ $+($cid,$wildsite) ] ] 1 | goto next }&lt;br /&gt;  if (%smtrig [ $+ [ $+($cid,$chan) ] ]) { tokenize 32 %smtrig [ $+ [ $+($cid,$chan) ] ] | .msg $chan $nick $+ : same request has been asked by $1 $duration($calc($ctime - $2)) ago ..sorry | halt }&lt;br /&gt;  inc -u8 %triger. [ $+ [ $+($cid,$wildsite) ] ] | set -u10 %smtrig [ $+ [ $+($cid,$chan) ] ] $nick $ctime&lt;br /&gt;  if (%triger. [ $+ [ $+($cid,$wildsite) ] ] &gt;= 3) { .ignore -u10 $nick 2 | .notice $nick to $nick $+ : you've sent too many request in 10 secs ..ignore4@ $+ $nick for 10 secs | halt }&lt;br /&gt;  if (%triger. [ $+ [ $+($cid,$wildsite) ] ]) { .msg $chan $nick $+ : plz wait .for 10 secs before sending another comand | halt }&lt;br /&gt;  :next&lt;br /&gt;  if ($1 == $c(help)) {&lt;br /&gt;    if ($level($address($nick,0)) == asdj) &amp;&amp; ($nick == $owner) { .msg $nick $set.shoutcast.method($cid,dj) $ownercmd }&lt;br /&gt;    elseif ($level($address($nick,0)) == asdj) { .msg $nick $set.shoutcast.method($cid,dj) }&lt;br /&gt;    else { msg $nick $set.shoutcast.method($cid) }&lt;br /&gt;    goto end&lt;br /&gt;  }&lt;br /&gt;  if ($1 == $c(dj)) &amp;&amp; (!$2) { &lt;br /&gt;    .signal -n users $cid currentdj $chan &lt;br /&gt;    goto end&lt;br /&gt;  }&lt;br /&gt;  if ($1 == $c(website)) { &lt;br /&gt;    .signal -n users $cid website $chan &lt;br /&gt;    goto end&lt;br /&gt;  }&lt;br /&gt;  if ($1 == $c(server)) { &lt;br /&gt;    .signal -n users $cid server $chan &lt;br /&gt;    goto end&lt;br /&gt;  }&lt;br /&gt;  if ($1 == $c(commands)) {&lt;br /&gt;    set.shoutcast.method $cid&lt;br /&gt;    msg $chan %shoutcast.commscommand [ $+ [ $cid ] ] &lt;br /&gt;    if  ($istok(%shoutcast.currentdj [ $+ [ $cid ] ],$nick,43)) &amp;&amp; ($nick != $owner) {&lt;br /&gt;      .timercomdj $+ $cid $+ $nick 1 3 .msg $nick commands4@for-DJ :  $c(onair) - $c(offair) - $c(addnews) [1|2] &lt;news&gt;  - $c(chan) [add|del] &lt;channel&gt; - $c(radio)&lt;br /&gt;    }&lt;br /&gt;    goto end&lt;br /&gt;  }&lt;br /&gt;  if ($1 == $c(news)) { &lt;br /&gt;    .signal -n users $cid news $chan &lt;br /&gt;    goto end&lt;br /&gt;  }&lt;br /&gt;  if ($1 == $c(shoutout)) &amp;&amp; ($2) { &lt;br /&gt;    if (%shoutcast.currentdj [ $+ [ $cid ] ] == n/a) { .notice $nick to $nick $+ : Error: no4@DJ is on air to send shoutout  }&lt;br /&gt;    else {&lt;br /&gt;      %djnick.temp = $gettok(%shoutcast.currentdj [ $+ [ $cid ] ],$rand(1,$numtok(%shoutcast.currentdj [ $+ [ $cid ] ],0)),43)&lt;br /&gt;      set.user.request $cid shoutout $nick $2-&lt;br /&gt;      .notice $nick to $nick $+ : Your shoutout " $+ $2- $+ " has been sent to %djnick.temp&lt;br /&gt;      .raw privmsg %djnick.temp : $+ &lt; $+ $nick $+ &gt; shoutout %request.command [ $+ [ $cid ] ] &lt;br /&gt;    }&lt;br /&gt;    goto end&lt;br /&gt;  }&lt;br /&gt;  if ($1 == $c(request)) {&lt;br /&gt;    if (!$2) { .notice $nick Syntax Error: type $c(request) &lt;song&gt; | halt }&lt;br /&gt;    if (%shoutcast.currentdj [ $+ [ $cid ] ] == n/a) { .notice $nick Alert: No4@DJ is on air to proceed your request. | halt }&lt;br /&gt;    else { &lt;br /&gt;      if ($hfind(song,$+(*,$remove($2-,$chr(32)),*),1,w)) { %tx = $hget(song,$ifmatch)) | tokenize 32 %tx | .notice $nick to $nick $+ : $ifmatch was broadcasted $duration($calc($ctime - $1)) ago from $2 at $3 plz choose different title }&lt;br /&gt;      else {&lt;br /&gt;        %djnick.temp = $gettok(%shoutcast.currentdj [ $+ [ $cid ] ],$rand(1,$numtok(%shoutcast.currentdj [ $+ [ $cid ] ],0)),43)&lt;br /&gt;        set.user.request $cid request $nick $2-&lt;br /&gt;        if (%requestsend [ $+ [ $cid ] ] == 1) { .raw privmsg %djnick.temp : $+ &lt; $+ $nick $+ &gt; %request.command [ $+ [ $cid ] ] | .notice $nick to $nick $+ : Your request " $+ $2- $+ " has been sent. to %djnick.temp }&lt;br /&gt;        elseif  (%requestlog [ $+ [ $cid ] ] == 1) { requestlog $cid $chan $nick $2- | .notice $nick to $nick $+ : Your request " $+ $2- $+ " has been logged }&lt;br /&gt;        goto end&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  if ($1 == $c(radio)) || ($1 == $c(stat)) || ($1 == $c(listeners)) || ($1 == $c(peak)) || ($1 == $c(bitrate)) || ($1 == $c(song)) {&lt;br /&gt;    if ($timer($+(auto,$cid)).secs &lt; 15) .timer $+ $+(auto,$cid) off&lt;br /&gt;    if ($1 == $c(stat)) || ($1 == $c(radio)) {&lt;br /&gt;      if (!$istok(%shoutcast.currentdj [ $+ [ $cid ] ],$nick,43)) &amp;&amp; (%shoutcast.method [ $+ [ $cid ] ] != 1) { .notice $nick access4@denied to show $remove($1,$c) | goto end }&lt;br /&gt;    }&lt;br /&gt;    var %r = $remove($1,$c)&lt;br /&gt;    if ($var($+(%,%r,.,$cid),1).value != $null) { .notice $nick to $nick $+ : Your request sent too fast..., wait 5 secs to send new request | halt }&lt;br /&gt;    set -u5 $+(%,%r,.,$cid) $nick&lt;br /&gt;    set %reg.chan [ $+ [ $cid ] ] $chan&lt;br /&gt;    if (%shoutcast.server1) set $+(%,%r,.,$cid,$chan,%shoutcast.server1) $chan&lt;br /&gt;    if (%shoutcast.server2) set $+(%,%r,.,$cid,$chan,%shoutcast.server2) $chan&lt;br /&gt;    sockconnect %r $nick&lt;br /&gt;    goto end&lt;br /&gt;  }&lt;br /&gt;  if ($1 == $c(msg)) {&lt;br /&gt;    if (!$2) || (!$3) { .notice $nick to $nick $+ :: did you send shit? | halt }&lt;br /&gt;    else {&lt;br /&gt;      .raw privmsg $2 : $+ &lt; $+ $nick $+ &gt; $3-&lt;br /&gt;      .notice $nick to $nick $+ :: Your message to $2 sent....&lt;br /&gt;      goto end&lt;br /&gt;    }&lt;br /&gt;  } &lt;br /&gt;  if ($1 == $c(seen)) &amp;&amp; ($2 == dj) &amp;&amp; ($3) { if ($level($address($3,0)) == asdj) seennick $chan $nick $3 | else msg $chan $nick $+ : $3 is not in the dj's list }&lt;br /&gt;  if ($1 == $c(creator)) { msg $chan -7 $+ $shoutcast.version v1.07- by $maker | goto end }&lt;br /&gt;  if ($level($address($nick,0)) == asdj) {&lt;br /&gt;    if (!$istok(%shoutcast.currentdj [ $+ [ $cid ] ],$nick,43)) {&lt;br /&gt;      .msg $nick Access4@Denied&lt;br /&gt;      .timer $+ $cid $+ $nick 1 1 .msg $nick Plz relog4@in type in this window -&gt; $c(login) &lt;password&gt; &lt;br /&gt;      goto end&lt;br /&gt;    }&lt;br /&gt;    else {&lt;br /&gt;      if ($1 == $c(onair)) {&lt;br /&gt;        .signal -n DJs $cid $chan&lt;br /&gt;        goto end&lt;br /&gt;      }&lt;br /&gt;      if ($1 == $c(offair)) {&lt;br /&gt;        hdj $nick offair $chan $ctime $1-&lt;br /&gt;        %shoutcast.currentdj [ $+ [ $cid ] ] = $reptok(%shoutcast.currentdj [ $+ [ $cid ] ],$nick,$+($nick,[,off,]),1,43)&lt;br /&gt;        .signal -n DJs $cid $chan&lt;br /&gt;        .msg $nick set4@ [ $+ [ $+($nick,[offair]) ] ] :you nick has been set to $+($nick,[offair]) pls relogin to get access again later&lt;br /&gt;        goto end&lt;br /&gt;      }&lt;br /&gt;      ;syntax : for.i.e @addnews [1|2] &lt;text&gt; &lt;br /&gt;      ;[1|2] means to station1 or 2&lt;br /&gt;      if ($1 == $c(addnews)) {&lt;br /&gt;        if  ($2) &amp;&amp; ($3) { &lt;br /&gt;          unset  %shoutcast.news [ $+ [ $2 ] ]&lt;br /&gt;          %shoutcast.news [ $+ [ $2 ] ] = $addtok(%shoutcast.name  [ $+ [ $2 ] ],$3-,58) &lt;br /&gt;          .signal -n DJs $cid $chan&lt;br /&gt;          .notice $nick add4@news to %shoutcast.name [ $+ [ $2 ] ] $+ : $3- &lt;br /&gt;          goto end&lt;br /&gt;        }&lt;br /&gt;        else { .notice $nick syntax error: type $c(addnews) ə|2&gt; &lt;text&gt; | halt }&lt;br /&gt;      }&lt;br /&gt;      if ($1 == $c(chan)) {&lt;br /&gt;        if ($3) {&lt;br /&gt;          var %c = $addtok($chr(35),$remove($3,$chr(35)),0)&lt;br /&gt;          if  ($2 == add) { &lt;br /&gt;            %shoutcast.channel [ $+ [ $cid ] ] = $addtok(%shoutcast.channel [ $+ [ $cid ] ],%c,44) &lt;br /&gt;            if ($me !ison %c) .timerjoin $+ $cid 1 5 join %c&lt;br /&gt;            .notice $nick add4@channel %c joining... &lt;br /&gt;            goto end&lt;br /&gt;          }&lt;br /&gt;          if ($2 == del) {&lt;br /&gt;            %shoutcast.channel [ $+ [ $cid ] ] = $remtok(%shoutcast.channel [ $+ [ $cid ] ],%c,1,44) &lt;br /&gt;            if ($me ison %c) .timerpart $+ $cid 1 5 part %c ask4@by $nick $iif($4,$4-,-) 7 $+ $shoutcast.version 7- by $maker at www.hawkee.com&lt;br /&gt;            .notice $nick del4@channel %c parting... &lt;br /&gt;            goto end&lt;br /&gt;          }&lt;br /&gt;        }&lt;br /&gt;        else { notice $nick syntax error: type $c(chan) add|del &lt;channel&gt; | halt }&lt;br /&gt;      }&lt;br /&gt;      if ($nick == $owner) {&lt;br /&gt;        if ($1 == $c(resetserver)) { &lt;br /&gt;          unset %shoutcast.server* %shoutcast.website* %shoutcast.name* %shoutcast.port* %nr.of.server&lt;br /&gt;          msg $chan reset4@server done&lt;br /&gt;          goto end&lt;br /&gt;        }&lt;br /&gt;        ;i.e : @addserver merlin.net 8026&lt;br /&gt;        if ($1 == $c(addserver)) {&lt;br /&gt;          if ($2) &amp;&amp; ($3) {&lt;br /&gt;            if (%nr.of.server &gt; 2) { .msg $nick plz $c(resetserver) first before added | halt }&lt;br /&gt;            inc %nr.of.server&lt;br /&gt;            var %s = $remove($2,http://,www.)&lt;br /&gt;            set %shoutcast.website [ $+ [ %nr.of.server ] ] $+(http://,www.,%s)&lt;br /&gt;            set %shoutcast.name [ $+ [ %nr.of.server ] ] $+(%s,Radio,%nr.of.server,Online)&lt;br /&gt;            set $+($chr(37),shoutcast,.,server,%nr.of.server) %s&lt;br /&gt;            set $+($chr(37),shoutcast,.,port,%nr.of.server) $3 &lt;br /&gt;            .msg $nick Station $+ %nr.of.server $+ :  $+(%s,Radio,%nr.of.server,Online) Server: %s Port: $3 Website: $+(http://,www.,%s)&lt;br /&gt;            goto end&lt;br /&gt;          }&lt;br /&gt;          else { .msg $nick syntax error: type $c(addserver) &lt;server&gt; &lt;port&gt; | halt }&lt;br /&gt;        }&lt;br /&gt;        if ($1 == $c(dj)) {&lt;br /&gt;          if ($2 == add) &amp;&amp; ($3) { .guser asdj $3 0 DJ | .msg $3 add4@DJ your Password: $+ %shoutcast.pass $+ $cid Login: type -&gt; $c(login) &lt;pass&gt; }&lt;br /&gt;          if ($2 == del) &amp;&amp; ($3) { .ruser asdj $3 0 | %shoutcast.currentdj [ $+ [ $cid ] ] = $remtok(%shoutcast.currentdj [ $+ [ $cid ] ],$3,1,43) | .msg $3 remove4@DJ sorry.. }&lt;br /&gt;          goto end&lt;br /&gt;        }&lt;br /&gt;        if (dal.net isin $server) {&lt;br /&gt;          if ($1 == $c(up)) &amp;&amp; ($me !isop $chan) cs op $chan $me &lt;br /&gt;          if ($1 == $c(down)) &amp;&amp; ($me isop $chan) { mode $chan +v-o $me $me } &lt;br /&gt;          goto end&lt;br /&gt;        } &lt;br /&gt;        if ($1 == $c(restart)) { restart | halt }&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  :end&lt;br /&gt;}&lt;br /&gt;on *:SOCKOPEN:$(shoutcast. $+ $+(%shoutcast.server1,*)):{&lt;br /&gt;  set -u0 %`t $gettok($sockname,-1,46)&lt;br /&gt;  var %cid = $gettok($sockname,-2,46)&lt;br /&gt;  if ($sockerr &gt; 0) {&lt;br /&gt;    set %shoutcast.errorformat $replace(%shoutcast.commandformat,&lt;CommandTopic&gt;,Error,&lt;CommandValue&gt;,No Connection To Server: $gettok($sockname,2-3,46))&lt;br /&gt;    if ($reguestchan($gettok($sockname,-1,46),%cid)) { scid -t1 %cid msg $ifmatch %shoutcast.errorformat }&lt;br /&gt;    disp.status %cid 1 %shoutcast.errorformat&lt;br /&gt;    return&lt;br /&gt;  }&lt;br /&gt;  sockident $sockname&lt;br /&gt;}&lt;br /&gt;on *:sockread:$(shoutcast. $+ $+(%shoutcast.server1,*)):{&lt;br /&gt;  if ($sockerr &gt; 0) return&lt;br /&gt;  :nextread&lt;br /&gt;  var %s.temp = $gettok($sockname,2,46), %n.temp = $remove(%shoutcast.name1,$chr(32),-,.), %`t = $gettok($sockname,-1,46), %cid = $gettok($sockname,-2,46) &lt;br /&gt;  if (%`t == radio) { &lt;br /&gt;    sockread %scasttemp &lt;br /&gt;    if ($sockbr == 0) return&lt;br /&gt;    tokenize 58 %scasttemp &lt;br /&gt;    var %t = $gethtml(%scasttemp)&lt;br /&gt;    if (%scasttemp == ICY 200 OK) { disp.status %cid 1 Loading Stream... }&lt;br /&gt;    elseif ($1 == icy-notice1) { hadd asdj $+(notice,%n.temp) $iif($deltok(%t,1,58),$ifmatch,n/a) } &lt;br /&gt;    elseif ($1 == icy-notice2) { hadd asdj $+(notice,%n.temp) $addtok($hget(asdj,$+(notice,%n.temp)),$iif($deltok(%t,1,58),$ifmatch,.),32) } &lt;br /&gt;    elseif ($1 == icy-name) { hadd asdj $+(name,%n.temp) $iif($deltok(%t,1,58),$ifmatch,n/a)) }&lt;br /&gt;    elseif ($1 == icy-genre) { hadd asdj $+(genre,%n.temp) $iif($deltok(%t,1,58),$ifmatch,n/a) }&lt;br /&gt;    elseif ($1 == icy-url) { var %w =  $iif($deltok(%t,1,58),$ifmatch,n/a) | hadd asdj $+(url,%n.temp) %w | %shoutcast.website1 =  %w }&lt;br /&gt;    elseif ($1 == icy-br) { hadd asdj $+(bitrate,%n.temp) $iif($deltok(%t,1,58),$ifmatch,n/a) }&lt;br /&gt;    elseif (icy !isin $1) { &lt;br /&gt;      sockclose $sockname &lt;br /&gt;      if ($reguestchan(%`t,%cid)) { scid -t1 %cid msg $ifmatch $streamreport(%n.temp) }&lt;br /&gt;      halt &lt;br /&gt;    }&lt;br /&gt;    goto nextread &lt;br /&gt;  }&lt;br /&gt;  sockread -f %scasttemp&lt;br /&gt;  if ($sockbr == 0) return&lt;br /&gt;  if (%scasttemp == $null) %scasttemp = empty&lt;br /&gt;  var %scasttemp = $remove(%scasttemp,&lt;HTML&gt;&lt;meta http-equiv="Pragma" content="no-cache"&gt;&lt;/head&gt;&lt;body&gt;,&lt;/body&gt;&lt;/html&gt;)&lt;br /&gt;  tokenize 44 %scasttemp&lt;br /&gt;  if (*HTTP*404* iswm %scasttemp) { aline -p $+(@,$remove(%shoutcast.name1,$chr(32))) No data found on $gettok($sockname,2-3,46) | sockclose $sockname }&lt;br /&gt;  if (HTTP/1.* !iswm %scasttemp) &amp;&amp; (content-type* !iswm %scasttemp) &amp;&amp; (%scasttemp != empty) { &lt;br /&gt;    set %shoutcast.status. [ $+ [ %s.temp ] ] $2&lt;br /&gt;    set %shoutcast.listeners. [ $+ [ %s.temp ] ] $1&lt;br /&gt;    set %shoutcast.maxlisteners. [ $+ [ %s.temp ] ] $4&lt;br /&gt;    set %shoutcast.peak. [ $+ [ %s.temp ] ] $3&lt;br /&gt;    set %shoutcast.bitrate. [ $+ [ %s.temp ] ] $6&lt;br /&gt;    set %shoutcast.song. [ $+ [ %s.temp ] ] $7-&lt;br /&gt;    if ($7) addsong $remove($deltok($7-,1,45),$chr(32)) $ctime %n.temp $web(%shoutcast.server1,%shoutcast.port1)&lt;br /&gt;    if (%`t == stat) {&lt;br /&gt;      %shoutcast.report = $+(%n.temp,-,$ctrigger($sockname,$2,$1,$3,$4,$6,$7-))&lt;br /&gt;      disp.status %cid 1 %shoutcast.report&lt;br /&gt;      if (%autoserve [ $+ [ $+(%cid,%shoutcast.server1) ] ]) { unset %autoserve [ $+ [ $+(%cid,%shoutcast.server1) ] ] | reportallchan %cid %shoutcast.report | return }&lt;br /&gt;      if ($reguestchan(%`t,%cid)) { scid -t1 %cid msg $ifmatch %shoutcast.report }&lt;br /&gt;    }&lt;br /&gt;    else {&lt;br /&gt;      if ($2 == 0) {&lt;br /&gt;        %shoutcast.report = $replace(%shoutcast.commandformat,&lt;CommandTopic&gt;,Alert:,&lt;CommandValue&gt;,Streaming Is currently Down on Skn %n.temp)&lt;br /&gt;        if ($reguestchan(%`t,%cid)) { scid -t1 %cid msg $ifmatch %shoutcast.report }&lt;br /&gt;      }&lt;br /&gt;      elseif ($reguestchan(%`t,%cid)) { scid -t1 %cid msg $ifmatch $ctrigger($sockname,%s.temp,%n.temp) }&lt;br /&gt;      disp.status %cid 1 %shoutcast.report  &lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  goto nextread&lt;br /&gt;}&lt;br /&gt;on *:sockclose:$(shoutcast. $+ $+(%shoutcast.server1,*)):{ &lt;br /&gt;  var %`t = $gettok($sockname,-1,46), %cid = $gettok($sockname,-2,46)&lt;br /&gt;  if (($sockerr) || (%autoreport [ $+ [ $cid ] ] == off)) return &lt;br /&gt;  if (%`t == stat) &amp;&amp; (%delay [ $+ [ %cid ] ]) {&lt;br /&gt;    scid %cid .timer $+ $+(auto,%cid) 1 %delay [ $+ [ %cid ] ] sockconnect stat auto&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;on *:SOCKOPEN:$(shoutcast. $+ $+(%shoutcast.server2,*)):{&lt;br /&gt;  set -u0 %`t $gettok($sockname,-1,46)&lt;br /&gt;  var %cid = $gettok($sockname,-2,46)&lt;br /&gt;  if ($sockerr &gt; 0) {&lt;br /&gt;    set %shoutcast.errorformat $replace(%shoutcast.commandformat,&lt;CommandTopic&gt;,Error,&lt;CommandValue&gt;,No Connection To Server: $gettok($sockname,2-3,46))&lt;br /&gt;    if ($reguestchan($gettok($sockname,-1,46),%cid)) { scid -t1 %cid msg $ifmatch %shoutcast.errorformat }&lt;br /&gt;    disp.status %cid 2 %shoutcast.errorformat&lt;br /&gt;    return&lt;br /&gt;  }&lt;br /&gt;  sockident $sockname&lt;br /&gt;}&lt;br /&gt;on *:sockread:$(shoutcast. $+ $+(%shoutcast.server2,*)):{&lt;br /&gt;  if ($sockerr &gt; 0) return&lt;br /&gt;  :nextread&lt;br /&gt;  sockread -f %scasttemp&lt;br /&gt;  if ($sockbr == 0) return&lt;br /&gt;  var %s.temp = $gettok($sockname,2,46), %n.temp = $remove(%shoutcast.name2,$chr(32),-,.), %`t = $gettok($sockname,-1,46), %cid = $gettok($sockname,-2,46)&lt;br /&gt;  if (%`t == radio) { &lt;br /&gt;    sockread %scasttemp &lt;br /&gt;    if ($sockbr == 0) return&lt;br /&gt;    tokenize 58 %scasttemp &lt;br /&gt;    var %t = $gethtml(%scasttemp)&lt;br /&gt;    if (%scasttemp == ICY 200 OK) { disp.status %cid 2 Loading Stream... }&lt;br /&gt;    elseif ($1 == icy-notice1) { hadd asdj $+(notice,%n.temp) $iif($deltok(%t,1,58),$ifmatch,n/a) } &lt;br /&gt;    elseif ($1 == icy-notice2) { hadd asdj $+(notice,%n.temp) $addtok($hget(asdj,$+(notice,%n.temp)),$iif($deltok(%t,1,58),$ifmatch,.),32) } &lt;br /&gt;    elseif ($1 == icy-name) { hadd asdj $+(name,%n.temp) $iif($deltok(%t,1,58),$ifmatch,n/a)) }&lt;br /&gt;    elseif ($1 == icy-genre) { hadd asdj $+(genre,%n.temp) $iif($deltok(%t,1,58),$ifmatch,n/a) }&lt;br /&gt;    elseif ($1 == icy-url) { var %w =  $iif($deltok(%t,1,58),$ifmatch,n/a) | hadd asdj $+(url,%n.temp) %w | %shoutcast.website2 =  %w }&lt;br /&gt;    elseif ($1 == icy-br) { hadd asdj $+(bitrate,%n.temp) $iif($deltok(%t,1,58),$ifmatch,n/a) }&lt;br /&gt;    elseif (icy !isin $1) { &lt;br /&gt;      sockclose $sockname &lt;br /&gt;      if ($reguestchan(%`t,%cid)) { scid -t1 %cid msg $ifmatch $streamreport(%n.temp) }&lt;br /&gt;      halt &lt;br /&gt;    }&lt;br /&gt;    goto nextread &lt;br /&gt;  }&lt;br /&gt;  sockread -f %scasttemp&lt;br /&gt;  if ($sockbr == 0) return&lt;br /&gt;  if (%scasttemp == $null) %scasttemp = empty&lt;br /&gt;  var %scasttemp = $remove(%scasttemp,&lt;HTML&gt;&lt;meta http-equiv="Pragma" content="no-cache"&gt;&lt;/head&gt;&lt;body&gt;,&lt;/body&gt;&lt;/html&gt;)&lt;br /&gt;  tokenize 44 %scasttemp&lt;br /&gt;  if (*HTTP*404* iswm %scasttemp) { aline -p $+(@,$remove(%shoutcast.name2,$chr(32))) No data found on $gettok($sockname,2-3,46) | sockclose $sockname }&lt;br /&gt;  if (HTTP/1.* !iswm %scasttemp) &amp;&amp; (content-type* !iswm %scasttemp) &amp;&amp; (%scasttemp != empty) { &lt;br /&gt;    set %shoutcast.status. [ $+ [ %s.temp ] ] $2&lt;br /&gt;    set %shoutcast.listeners. [ $+ [ %s.temp ] ] $1&lt;br /&gt;    set %shoutcast.maxlisteners. [ $+ [ %s.temp ] ] $4&lt;br /&gt;    set %shoutcast.peak. [ $+ [ %s.temp ] ] $3&lt;br /&gt;    set %shoutcast.bitrate. [ $+ [ %s.temp ] ] $6&lt;br /&gt;    set %shoutcast.song. [ $+ [ %s.temp ] ] $7-&lt;br /&gt;    if ($7) addsong $remove($deltok($7-,1,45),$chr(32)) $ctime %n.temp $web(%shoutcast.server2,%shoutcast.port2)&lt;br /&gt;    if (%`t == stat) {&lt;br /&gt;      %shoutcast.report = $+(%n.temp,-,$ctrigger($sockname,$2,$1,$3,$4,$6,$7-))&lt;br /&gt;      disp.status %cid 2 %shoutcast.report  &lt;br /&gt;      if (%autoserve [ $+ [ $+(%cid,%shoutcast.server2) ] ]) { unset %autoserve [ $+ [ $+(%cid,%shoutcast.server2) ] ] | reportallchan %cid %shoutcast.report | return }&lt;br /&gt;      if ($reguestchan(%`t,%cid)) { scid -t1 %cid msg $ifmatch %shoutcast.report }&lt;br /&gt;    }&lt;br /&gt;    else {&lt;br /&gt;      if ($2 == 0) {&lt;br /&gt;        %shoutcast.report = $replace(%shoutcast.commandformat,&lt;CommandTopic&gt;,Alert:,&lt;CommandValue&gt;,Streaming Is currently Down on Skn %n.temp)&lt;br /&gt;        if ($reguestchan(%`t,%cid)) { scid -t1 %cid msg $ifmatch %shoutcast.report }&lt;br /&gt;      }&lt;br /&gt;      elseif ($reguestchan(%`t,%cid)) { scid -t1 %cid msg $ifmatch $ctrigger($sockname,%s.temp,%n.temp) }&lt;br /&gt;      disp.status %cid 2 %shoutcast.report  &lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  goto nextread&lt;br /&gt;}&lt;br /&gt;on *:sockclose:$(shoutcast. $+ $+(%shoutcast.server2,*)):{ &lt;br /&gt;  var %`t = $gettok($sockname,-1,46), %cid = $gettok($sockname,-2,46)&lt;br /&gt;  if (($sockerr) || (%autoreport [ $+ [ $cid ] ] == off)) return &lt;br /&gt;  if (%`t == stat) &amp;&amp; (%delay [ $+ [ %cid ] ]) {&lt;br /&gt;    scid %cid .timer $+ $+(auto,%cid) 1 %delay [ $+ [ %cid ] ] sockconnect stat auto&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;on *:SIGNAL:users: { set.user.request $1 $2 | msg $3 %request.command [ $+ [ $1 ] ] } &lt;br /&gt;on *:SIGNAL:DJs: {&lt;br /&gt;  setcurrent.topic $1&lt;br /&gt;  if ($me isop $2) &amp;&amp; (%ontopic [ $+ [ $1 ] ] == on) topic $2 $current.topic&lt;br /&gt;  else msg $2 $current.topic &lt;br /&gt;}&lt;br /&gt;;protection&lt;br /&gt;on *:SIGNAL:opme: scid $1 cs op $2 $me &lt;br /&gt;on !@*:ban:$(%shoutcast.channel [ $+ [ $cid ] ]):{ if ($banmask iswm $address($me,5)) { kick $chan $nick Banning channel bot addresses are Ilegal Action | mode $chan -b+b $banmask $wildsite } }&lt;br /&gt;on *:notice:*has deopped*:$(%shoutcast.channel [ $+ [ $cid ] ]):{ if (dal.net isin $server) &amp;&amp; ($nick == ChanServ) &amp;&amp; ($4 == $me) &amp;&amp; ($1 != $owner) { .signal -n opme $cid $chan } }&lt;br /&gt;on !*:deop:$(%shoutcast.channel [ $+ [ $cid ] ]):{ if (dal.net isin $server) &amp;&amp; ($opnick == $me) &amp;&amp; ($nick != $owner) &amp;&amp; ($nick != ChanServ) &amp;&amp; (!%deopme [ $+ [ $+($cid,$chan) ] ]) { set -u5 %deopme [ $+ [ $+($cid,$chan) ] ] ! | .signal -n opme $cid $chan } }&lt;br /&gt;on *:connect: .ial on | if ($wildtok(%shoutcast.channel [ $+ [ $cid ] ],*Change-Me*,1,44)) { unset %shoutcast.channel [ $+ [ $cid ] ] | incpl } | .timer 1 10 connect_&lt;br /&gt;on *:start: default.set | .hmake song 500 | .hmake asdj 1 | hmake dj 10 | .anick $+($mnick,2) | %clonenumber = 2 | echo $color(info) -a -7 $+ $shoutcast.version 7- loaded.... | unsetvar&lt;br /&gt;on *:exit: .hfree song | .rlevel asdj&lt;br /&gt;alias sockident {&lt;br /&gt;  if (%`t == radio) { &lt;br /&gt;    sockwrite -n $1 GET / HTTP/1.0 &lt;br /&gt;    sockwrite -n $1 Host: $sock($1).ip&lt;br /&gt;    sockwrite -n $1&lt;br /&gt;  }&lt;br /&gt;  else {&lt;br /&gt;    sockwrite -n $1 GET /7.html HTTP/1.0 &lt;br /&gt;    sockwrite -n $1 Host: $sock($1).ip&lt;br /&gt;    sockwrite -n $1 User-Agent: Mozilla/5.0&lt;br /&gt;    sockwrite -n $1 $crlf&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;alias disp.status {&lt;br /&gt;  if (%actionlog [ $+ [ $1 ] ] == 0) return&lt;br /&gt;  if (!$window($+(@,$remove($var($+(%,shoutcast.name,$2),1).value,$chr(32))))) window -b  $+(@,$remove($var($+(%,shoutcast.name,$2),1).value,$chr(32))) Tahoma 11&lt;br /&gt;  aline -p $+(@,$remove($var($+(%,shoutcast.name,$2),1).value,$chr(32))) $timestamp $3-&lt;br /&gt;}&lt;br /&gt;alias streamreport return Server-Notice: $iif($hget(asdj,$+(notice,$1)),$hget(asdj,$+(notice,$1)),n/a) Station-Name: $iif($hget(asdj,$+(name,$1)),$hget(asdj,$+(name,$1)),n/a) Genre: $iif($hget(asdj,$+(genre,$1)),$hget(asdj,$+(genre,$1)),n/a) URL: $iif($hget(asdj,$+(url,$1)), $hget(asdj,$+(url,$1)),n/a)&lt;br /&gt;alias maker return $decode(W3xSZWQtWHxd,m)&lt;br /&gt;alias -l gethtml { &lt;br /&gt;  var %text, %i = $regsub($1-,/(^[^&lt;]*&gt;|&lt;[^&gt;]*&gt;|&lt;[^&gt;]*$)/g,$null,%text), %text = $remove(%text,&amp;) &lt;br /&gt;  return %text &lt;br /&gt;}&lt;br /&gt;alias request  {&lt;br /&gt;  if ($window(@Requestlog)) { return }&lt;br /&gt;  window -elk0 @Requestlog Tahoma 11&lt;br /&gt;  aline -p @Requestlog -------------------------------------------------------------------------------------------------&lt;br /&gt;  aline -p @Requestlog :: List of Request...................................... &lt;br /&gt;  aline -p @Requestlog -------------------------------------------------------------------------------------------------&lt;br /&gt;  .timerasslog 1 2 window -b @Requestlog&lt;br /&gt;}&lt;br /&gt;alias requestlog { &lt;br /&gt;  if (!$window(@Requestlog)) { unset %countrequest [ $+ [ $+($1,$2) ] ] }&lt;br /&gt;  if (!%countrequest [ $+ [ $+($1,$2) ] ]) { set %countrequest [ $+ [ $+($1,$2) ] ] 1 }&lt;br /&gt;  else inc %countrequest [ $+ [ $+($1,$2) ] ] &lt;br /&gt;  request %countrequest [ $+ [ $+($1,$2) ] ]&lt;br /&gt;  aline -p @Requestlog ( $+ %countrequest [ $+ [ $+($1,$2) ] ] $+ ) $timestamp Channel:  $+ $remove($2,$chr(35)) Nick: $+ $3  Song:  $+ $4-&lt;br /&gt;}&lt;br /&gt;alias -l seennick {&lt;br /&gt;  var %i = $comchan($3,0)&lt;br /&gt;  if (!%i) { raw notice $2 : $+ $seenparse($3) | return }&lt;br /&gt;  while (%i) {&lt;br /&gt;    if ($comchan($3,%i) == $1) { msg $1 $2 :hm..it seems that you need to open your eyes widely }&lt;br /&gt;    else { raw notice $2 : $+ $3 is in $comchan($3,%i) right now | break }&lt;br /&gt;    dec %i&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;alias seenparse { &lt;br /&gt;  var %c = $hget(dj,$+($cid,$1)) &lt;br /&gt;  if (!%c) { return  $1 is not login yet } &lt;br /&gt;  var %n = $1 &lt;br /&gt;  tokenize 32 %c &lt;br /&gt;  if ($1 == quit) { return I last saw %n quitting $duration($calc($ctime - $2)) ago $iif($3,with the message $3-) } &lt;br /&gt;  if ($1 == part) { return I last saw %n leaving $2 $duration($calc($ctime - $3)) ago with the message $4- } &lt;br /&gt;  if ($1 == join) { return I last saw %n joining $2 $duration($calc($ctime - $3)) ago. } &lt;br /&gt;  if ($1 == nick) { return I last saw %n changing nickname to $2 $duration($calc($ctime - $3)) ago. } &lt;br /&gt;  if ($1 ==  offair) { return I last saw %n asked for offair in $2 $duration($calc($ctime - $3)) ago. } &lt;br /&gt;  if ($1 ==  signed-in) { return I last saw %n signed-in in $2 $duration($calc($ctime - $3)) ago. } &lt;br /&gt;} &lt;br /&gt;on *:LOAD:{&lt;br /&gt;  ;this variable are set just to show the setting need to be made, but it can anyway be used for testing&lt;br /&gt;  set %shoutcast.website1 http://tiongkokradio.com&lt;br /&gt;  set %shoutcast.website2 http://indoradio.sb5.org&lt;br /&gt;  set %shoutcast.name1 Teochew Radio Online1&lt;br /&gt;  set %shoutcast.name2 Teochew Radio Online2&lt;br /&gt;  set %shoutcast.server1 tiongkokradio.com&lt;br /&gt;  set %shoutcast.server2 indoradio.sb5.org&lt;br /&gt;  set %shoutcast.news1 %shoutcast.name1 $+ : added news&lt;br /&gt;  set %shoutcast.news2 %shoutcast.name2 $+ : added news &lt;br /&gt;  set %shoutcast.channeltopic $shoutcast.channeltopic&lt;br /&gt;  set %shoutcast.commandformat $shoutcast.commandformat&lt;br /&gt;  set %shoutcast.trigger @&lt;br /&gt;  set %shoutcast.port1 2222&lt;br /&gt;  set %shoutcast.port2 8181&lt;br /&gt;  echo $color(info) -a :: $+ $shoutcast.version v1.0 Succesfully loaded... &lt;br /&gt;  echo $color(info) -a ::Capable of Two socket connections to different IP's &lt;br /&gt;  echo $color(info) -a ::This Addon created by [|Red-X|] &lt;br /&gt;  echo $color(info) -a ::Bugs found or any question mail to m_aditya@kaskus.com or at www.hawkee.com or /msg [|Red-|] on @Dalnet #help-script..plz...respons...&lt;br /&gt;  .timer1 1 3 open shoutcast&lt;br /&gt;}&lt;br /&gt;alias -l open  if (!$dialog($1)) dialog -mhr $1 $1&lt;br /&gt;dialog shoutcast {&lt;br /&gt;  title $shoutcast.version&lt;br /&gt;  size -1 -1 203 158&lt;br /&gt;  option dbu&lt;br /&gt;  button "&amp;OK", 13, 155 140 37 12, ok&lt;br /&gt;  button "&amp;Cancel", 14, 112 140 37 12, cancel&lt;br /&gt;  tab "Main Settings", 1, 6 1 192 133&lt;br /&gt;  edit %shoutcast.name1, 2, 10 28 90 10, tab 1 autohs&lt;br /&gt;  edit %shoutcast.server1, 3, 10 49 90 10, tab 1 autohs&lt;br /&gt;  edit %shoutcast.port1, 4, 76 63 22 10, tab 1 autohs&lt;br /&gt;  edit %shoutcast.trigger, 5, 164 119 31 10, tab 1&lt;br /&gt;  edit %shoutcast.website1, 6, 10 96 90 10, tab 1 autohs&lt;br /&gt;  edit %shoutcast.channel [ $+ [ $cid ] ], 7, 10 119 148 10, tab 1 autohs&lt;br /&gt;  text "Channels:", 55, 11 111 41 8, tab 1&lt;br /&gt;  text "Website1", 54, 12 87 54 8, tab 1&lt;br /&gt;  text "Port:1", 52, 58 64 14 8, tab 1&lt;br /&gt;  text "Server1 Address:", 51, 11 40 63 8, tab 1&lt;br /&gt;  text "Station1 Name:", 50, 11 20 71 8, tab 1&lt;br /&gt;  text "Trigger:", 53, 165 111 25 8, tab 1&lt;br /&gt;  edit %shoutcast.name2, 11, 105 28 90 10, tab 1 autohs &lt;br /&gt;  edit %shoutcast.server2, 12, 105 49 90 10, tab 1 autohs&lt;br /&gt;  edit %shoutcast.port2, 15, 171 63 22 10, tab 1 autohs&lt;br /&gt;  text "Port:2", 16, 152 64 14 8, tab 1&lt;br /&gt;  text "Station2 Name:", 17, 106 20 71 8, tab 1&lt;br /&gt;  edit %shoutcast.website2, 18, 105 96 91 10, tab 1 autohs&lt;br /&gt;  text "Website2", 19, 106 87 54 8, tab 1&lt;br /&gt;  text "Server2 Address:", 22, 106 40 63 8, tab 1&lt;br /&gt;  edit %shoutcast.pass [ $+ [ $cid ] ], 23, 51 77 47 10, tab 1 autohs&lt;br /&gt;  edit %shoutcast.pass [ $+ [ $cid ] ], 24, 146 77 47 10, tab 1 autohs&lt;br /&gt;  text "Password", 25, 16 72 29 8, tab 1&lt;br /&gt;  text "connection1", 62, 16 78 29 8, tab 1&lt;br /&gt;  text "Password", 26, 108 72 34 8, tab 1&lt;br /&gt;  text "connection2", 63, 108 78 34 8, tab 1&lt;br /&gt;  box "", 38, 8 14 94 96, tab 1&lt;br /&gt;  box "", 43, 103 14 93 96, tab 1&lt;br /&gt;  tab "Message/Display settings", 34&lt;br /&gt;  text "Channel Topic:", 56, 11 17 51 8, tab 34&lt;br /&gt;  edit  %shoutcast.channeltopic, 8, 11 25 180 10, tab 34 autohs&lt;br /&gt;  text "Variables: &lt;StationName&gt; &lt;CurrentDJ&gt; &lt;Server&gt; &lt;News&gt; &lt;website&gt;", 57, 11 37 175 8, tab 34 disable&lt;br /&gt;  text "Command Responses:", 58, 11 46 80 8, tab 34&lt;br /&gt;  edit %shoutcast.commandformat, 9, 11 55 180 10, tab 34 autohs&lt;br /&gt;  text "Variables: &lt;CommandTopic&gt; &lt;CommandValue&gt;", 59, 11 67 124 8, tab 34 disable&lt;br /&gt;  check Set Topic %ontopic [ $+ [ $cid ] ], 28, 16 81 42 10, tab 34&lt;br /&gt;  radio "Message", 29, 117 100 42 10, tab 34&lt;br /&gt;  radio "Notice", 30, 117 114 42 10, tab 34&lt;br /&gt;  check Join/part Greeting %ojgreet [ $+ [ $cid ] ], 31, 118 86 66 10, tab 34&lt;br /&gt;  box "", 27, 11 75 98 30, tab 34&lt;br /&gt;  box "on join/part greeting", 35, 111 75 82 55, tab 34&lt;br /&gt;  check method %shoutcast.method, 36, 18 113 35 12, tab 34 push flat&lt;br /&gt;  box "", 60, 11 104 98 26, tab 34&lt;br /&gt;  text "User's commands", 61, 56 115 45 8, tab 34&lt;br /&gt;  check Auto Display %autoreport [ $+ [ $cid ] ], 37, 60 81 47 10, tab 34&lt;br /&gt;  combo 39, 66 92 24 41, tab 34 size drop disable&lt;br /&gt;  text "STAT display every", 41, 16 95 49 8, tab 34 &lt;br /&gt;  text "secs", 42, 93 95 17 8, tab 34&lt;br /&gt;  tab "Request/Activities Settings", 44&lt;br /&gt;  text "server1 news:", 40, 13 17 48 8, tab 44&lt;br /&gt;  edit %shoutcast.news1, 10, 12 25 180 10, tab 44 autohs&lt;br /&gt;  edit %shoutcast.news2, 20, 12 54 180 10, tab 44 autohs&lt;br /&gt;  text "server2 news:", 21, 13 45 48 8, tab 44&lt;br /&gt;  box "User's Request Setting", 45, 12 68 181 39, tab 44&lt;br /&gt;  radio "Forward User's request to a DJ randomizely ", 46, 46 79 116 10, tab 44&lt;br /&gt;  radio "Log User's Request to @Requestlog", 47, 46 92 102 10, tab 44&lt;br /&gt;  box "Activity Log", 48, 12 108 181 22, tab 44&lt;br /&gt;  check "Display activities on @station-name window ", 49, 47 116 114 10, tab 44&lt;br /&gt;  link "About asDJ-Bot v1.0", 32, 8 142 66 8&lt;br /&gt;}&lt;br /&gt;ON *:DIALOG:shoutcast:init:0:{ &lt;br /&gt;  did -ca $dname 39 %delay [ $+ [ $cid ] ]&lt;br /&gt;  didtok -a $dname 39 44 60,120,180,240,300,360,420,600,1200,2400,3600&lt;br /&gt;  if (%shoutcast.method [ $+ [ $cid ] ] == 1) { did -u $dname 36 | did -a $dname 36 Method 1 } | else { did -c $dname 36 | did -a $dname 36 Method 2 }&lt;br /&gt;  if (%ontopic [ $+ [ $cid ] ] == off) did -u $dname 28 | else did -c $dname 28 &lt;br /&gt;  if (%ojgreet [ $+ [ $cid ] ]  == on) { did -e $dname 29,30 | did -c $dname 31 } | else { did -b $dname 29,30 | did -u $dname 31 }&lt;br /&gt;  if (%autoreport [ $+ [ $cid ] ] == on) { did -e $dname 39,41 | did -c $dname 37 } | else { did -b $dname 39,41 | did -u $dname 37 }&lt;br /&gt;  if (%ojmsg [ $+ [ $cid ] ] == 1) { %ojnotice [ $+ [ $cid ] ] = 0 | did -u $dname 30 | did -c $dname 29 } | else { %ojnotice [ $+ [ $cid ] ] = 1 | did -c $dname 30 | did -u $dname 29 }&lt;br /&gt;  if (%requestlog [ $+ [ $cid ] ] == 1) { %requestsend [ $+ [ $cid ] ] = 0 | did -u $dname 46 | did -c $dname 47 } | else { %requestsend [ $+ [ $cid ] ] = 1 | did -c $dname 46 | did -u $dname 47 } &lt;br /&gt;  if (%actionlog [ $+ [ $cid ] ] == 1) did -c $dname 49 | else did -u $dname 49&lt;br /&gt;}&lt;br /&gt;ON *:DIALOG:shoutcast:sclick:*:{&lt;br /&gt;  if ($did == 13) {&lt;br /&gt;    set %shoutcast.name1 $did($dname,2)&lt;br /&gt;    set %shoutcast.server1 $did($dname,3)&lt;br /&gt;    set %shoutcast.port1 $did($dname,4)&lt;br /&gt;    set %shoutcast.trigger $did($dname,5)&lt;br /&gt;    set %shoutcast.website1 $did($dname,6)&lt;br /&gt;    set %shoutcast.name2 $did($dname,11)&lt;br /&gt;    set %shoutcast.server2 $did($dname,12)&lt;br /&gt;    set %shoutcast.port2 $did($dname,15)&lt;br /&gt;    set %shoutcast.website2 $did($dname,18)&lt;br /&gt;    set %shoutcast.channel [ $+ [ $cid ] ] $did($dname,7)&lt;br /&gt;    set %shoutcast.channeltopic $did($dname,8)&lt;br /&gt;    set %shoutcast.commandformat $did($dname,9)&lt;br /&gt;    set %shoutcast.news1 $did($dname,10)&lt;br /&gt;    set %shoutcast.news2 $did($dname,20)&lt;br /&gt;    set %shoutcast.pass [ $+ [ $scon(1).cid ] ] $did($dname,23)&lt;br /&gt;    set %shoutcast.pass [ $+ [ $scon(2).cid ] ] $did($dname,24)&lt;br /&gt;    set %delay [ $+ [ $cid ] ] $did($dname,39)&lt;br /&gt;  }&lt;br /&gt;  if ($did == 29) { %ojmsg [ $+ [ $cid ] ] = $iif(%ojmsg [ $+ [ $cid ] ] == 1,0,1) | if ($did(29).state == 1) { %ojmsg [ $+ [ $cid ] ] = 1 | %ojnotice [ $+ [ $cid ] ] = 0 | did -u $dname 30 | did -c $dname 29 } | else { %ojnotice [ $+ [ $cid ] ] = 1 | did -c $dname 30 | did -u $dname 29 } }&lt;br /&gt;  if ($did == 30) { %ojnotice [ $+ [ $cid ] ] = $iif(%ojnotice [ $+ [ $cid ] ] == 1,0,1) | if ($did(30).state == 1) { %ojnotice [ $+ [ $cid ] ] = 1 | %ojmsg [ $+ [ $cid ] ] = 0 | did -c $dname 30 | did -u $dname 29 } | else { %ojmsg [ $+ [ $cid ] ] = 1 | did -u $dname 30 | did -c $dname 29 } }&lt;br /&gt;  if ($did == 28) { %ontopic [ $+ [ $cid ] ] = $iif(%ontopic [ $+ [ $cid ] ] == on,off,on) | if (%ontopic [ $+ [ $cid ] ] == on) did -ca $dname 28 Set Topic on | else did -ua $dname 28 Set Topic off }&lt;br /&gt;  if ($did == 31) { %ojgreet [ $+ [ $cid ] ] = $iif(%ojgreet [ $+ [ $cid ] ] == on,off,on) | if (%ojgreet [ $+ [ $cid ] ]  == on) { did -e $dname 29,30 | did -ca $dname 31 Join/part Greeting on } | else { did -b $dname 29,30 | did -ua $dname 31 Join/part Greeting off } }&lt;br /&gt;  if ($did == 32) { if (!$dialog(about.asdj)) dialog -mv about.asdj about.asdj } &lt;br /&gt;  if ($did == 36) { %shoutcast.method [ $+ [ $cid ] ] = $iif(%shoutcast.method [ $+ [ $cid ] ] == 1,2,1) | if (%shoutcast.method [ $+ [ $cid ] ] == 1)  { did -ua $dname 36 method 1 }  | else { did -ca $dname 36 method 2 } | echo $color(info2) -a $iif(%shoutcast.method [ $+ [ $cid ] ] == 1,Method 1,Method 2) $+ - User's $set.shoutcast.method($cid) }&lt;br /&gt;  if ($did == 37) { %autoreport [ $+ [ $cid ] ] = $iif(%autoreport [ $+ [ $cid ] ] == on,off,on) | if (%autoreport [ $+ [ $cid ] ] == on) { did -e $dname 39,41 | did -ca $dname 37 Auto Display on } | else { did -b $dname 39,41 | did -ua $dname 37 Auto Display off } }&lt;br /&gt;  if ($did == 46) { %requestsend [ $+ [ $cid ] ] = $iif(%requestsend [ $+ [ $cid ] ] == 1,0,1) | if ($did(46).state == 1) { %requestsend [ $+ [ $cid ] ] = 1 | %requestlog [ $+ [ $cid ] ] = 0 | did -u $dname 47 | did -c $dname 46 } | else { %requestlog [ $+ [ $cid ] ]  = 1 | did -c $dname 47 | did -u $dname 46 } }&lt;br /&gt;  if ($did == 47) { %requestlog [ $+ [ $cid ] ] = $iif(%requestlog [ $+ [ $cid ] ] == 1,0,1) | if ($did(47).state == 1) { %requestlog [ $+ [ $cid ] ] = 1 | %requestsend [ $+ [ $cid ] ] = 0 | did -u $dname 46 | did -c $dname 47 } | else { %requestsend [ $+ [ $cid ] ] = 1 | did -c $dname 46 | did -u $dname 47 } }&lt;br /&gt;  if ($did == 49) { %actionlog [ $+ [ $cid ] ] = $iif(%actionlog [ $+ [ $cid ] ] == 1,0,1) | if ($did(49).state == 1) { %actionlog [ $+ [ $cid ] ] = 1 | did -c $dname 49 } | else { %actionlog [ $+ [ $cid ] ] = 0 | did -u $dname 49 } }&lt;br /&gt;}&lt;br /&gt;alias -l default.set {&lt;br /&gt;  set %shoutcast.currentdj [ $+ [ $cid ] ] n/a&lt;br /&gt;  set %delay [ $+ [ $cid ] ] 600&lt;br /&gt;  set %shoutcast.channel [ $+ [ $cid ] ] #Change-Me1,#Change-Me2,#Change-Me3,#etc&lt;br /&gt;  set %shoutcast.method [ $+ [ $cid ] ] 1 &lt;br /&gt;  set %shoutcast.pass [ $+ [ $cid ] ] 1234change&lt;br /&gt;  set %actionlog [ $+ [ $cid ] ] 0&lt;br /&gt;}&lt;br /&gt;alias -l unsetvar unset %nr.of.server %request.* %song* %listeners* %bitrate*  %stat* %peak*&lt;br /&gt;alias incpl open error | .timerdlg 1 3 open shoutcast&lt;br /&gt;dialog error {&lt;br /&gt;  title asDJ-Bot Error&lt;br /&gt;  size -1 -1 108 37&lt;br /&gt;  option dbu&lt;br /&gt;  text "ERROR: configuration incomplete!",3, 11 7 95 7&lt;br /&gt;  button "Close" 4, 38 20 25 12, Ok  &lt;br /&gt;}&lt;br /&gt;dialog about.asdj {&lt;br /&gt;  title "About asDJ-Bot v1.0"&lt;br /&gt;  size -1 -1 86 78&lt;br /&gt;  option dbu&lt;br /&gt;  box "", 1, -6 59 100 50&lt;br /&gt;  button "close", 2, 47 65 37 10, cancel&lt;br /&gt;  text "Author:", 3, 3 2 25 8&lt;br /&gt;  link "E-Mail", 5, 30 9 54 8&lt;br /&gt;  link "http://www.hawkee.com", 8, 3 16 82 8&lt;br /&gt;  text "[|Red-X|]", 6, 30 2 54 8&lt;br /&gt;  text "Contact:", 4, 3 9 25 8&lt;br /&gt;  text "©2004 by M.Aditya", 9, 3 55 82 8&lt;br /&gt;  text "You can find more information in the readme. Always check the website for updates and/or other scripts.", 10, 3 27 80 26&lt;br /&gt;}&lt;br /&gt;ON *:DIALOG:about.asdj:sclick:*: {&lt;br /&gt;  if ($did == 4) .url -n mailto: m_aditya@kaskus.com  &lt;br /&gt;  if ($did == 8) .url -n http://www.hawkee.com&lt;br /&gt;}&lt;br /&gt;menu channel,menubar,status,nicklist {&lt;br /&gt;  $+(&amp;,$shoutcast.version)&lt;br /&gt;  .&amp;Make New Connection: %nick = $iif($?="nick?",$!,$mnick) | server -m $$?="server?"  $$?="port?" -i %nick&lt;br /&gt;  .-&lt;br /&gt;  .Configure:if (!$dialog(shoutcast)) dialog -mr shoutcast shoutcast&lt;br /&gt;  .-&lt;br /&gt;  .&amp;IAL status &lt;br /&gt;  ..$iif($chan(#).ial == $true,All addresses OK):echo No need to update IAL for #&lt;br /&gt;  ..$iif($chan(#).ial == $false,IAL for # Incomplete. Update?):.who #&lt;br /&gt;  .-&lt;br /&gt;  .$iif($chan(#).ial == $false,$style(2)) Assignment&lt;br /&gt;  ..$iif($active !ischan,$style(2)) Owner&lt;br /&gt;  ...$iif($ulist($address($snick(#,1),0),asdj,1),&amp;Del.,&amp;Add) $snick(#,1): resetcurrentdj $cid | $iif($ulist($address($snick(#,1),0),asdj,1),.ruser,.guser) asdj $snick(#,1) 0 | if ($ulist($address($snick(#,1),0),asdj,1)) { alias owner return $snick(#,1) | %shoutcast.currentdj [ $+ [ $cid ] ] = $addtok(%shoutcast.currentdj [ $+ [ $cid ] ],$snick(#,1),43) | .msg $snick(#,1) added4@Owner } | else { alias owner return | %shoutcast.currentdj [ $+ [ $cid ] ] = $remtok(%shoutcast.currentdj [ $+ [ $cid ] ],$snick(#,1),1,43) | .msg $snick(#,1) del4@Owner } &lt;br /&gt;  ..$iif($active !ischan,$style(2)) &amp;DJ&lt;br /&gt;  ...$iif($ulist($address($snick(#,1),0),asdj,1),&amp;Del.,&amp;Add) $snick(#,1): resetcurrentdj $cid | $iif($ulist($address($snick(#,1),0),asdj,1),.ruser,.guser) asdj $snick(#,1) 0 | if ($ulist($address($snick(#,1),0),asdj,1)) { msg $snick(#,1) added4@DJ, type $c(login) %shoutcast.pass [ $+ [ $cid ] ] }  | else { %shoutcast.currentdj [ $+ [ $cid ] ] = $remtok(%shoutcast.currentdj [ $+ [ $cid ] ],$snick(#,1),1,43) | .msg $snick(#,1) del4@DJ }&lt;br /&gt;  .$iif($active ischan,$active)&lt;br /&gt;  ..$iif($istok(%shoutcast.channel [ $+ [ $cid ] ],#,44),&amp;Del.,&amp;Add) $active: if ($istok(%shoutcast.channel [ $+ [ $cid ] ],#,44)) { %shoutcast.channel [ $+ [ $cid ] ] = $remtok(%shoutcast.channel [ $+ [ $cid ] ],#,1,44) } | else { %shoutcast.channel [ $+ [ $cid ] ] = $addtok(%shoutcast.channel [ $+ [ $cid ] ],#,44)) } | echo $color(info) -a ::Active Channels: %shoutcast.channel [ $+ [ $cid ] ]&lt;br /&gt;  .-&lt;br /&gt;  .$iif($active != status window,Advertise):say I'm using -7 $+ $shoutcast.version v1.07- by $maker&lt;br /&gt;}&lt;br /&gt;menu @Requestlog {&lt;br /&gt;  dclick window -c @Requestlog  &lt;br /&gt;  Copy: clipboard $sline($active,1)&lt;br /&gt;  Clear screen: dline -s 4 $+ -&lt;br /&gt;  -&lt;br /&gt;  &amp;Del. line:var %ln = $sline($active,1).ln | dline -s %ln $+ - $+ %ln &lt;br /&gt;  -&lt;br /&gt;  Close: .window -c $active&lt;br /&gt;}&lt;br /&gt;on *:UNLOAD:{&lt;br /&gt;  echo -a ::unloaded  $shoutcast.version addon&lt;br /&gt;  unsetvar | unset %shoutcast* &lt;br /&gt;}&lt;br /&gt;;eos&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-8028888608536607381?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/8028888608536607381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=8028888608536607381' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/8028888608536607381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/8028888608536607381'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/04/advanced-shoutcast-dj-bot.html' title='Advanced shoutcast DJ Bot'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-3358158821755663786</id><published>2008-04-01T10:17:00.000-07:00</published><updated>2008-04-01T10:21:09.720-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='War Script'/><title type='text'>Mass Guest Kicker</title><content type='html'>Introduction&lt;br /&gt;&lt;br /&gt;kick all nicks use guest???&lt;br /&gt;&lt;br /&gt;by:aditya&lt;br /&gt;&lt;br /&gt;;syntax: /kickguest #channel&lt;br /&gt;alias kickguest {&lt;br /&gt;  if ($me isop $1) {&lt;br /&gt;    var %x = $nick($1,0)&lt;br /&gt;    while (%x &gt;= 1) {&lt;br /&gt;      if ($nick($1,%x) != $me) &amp;&amp; (Guest* iswm $nick($1,%x)) { kick $1 $ifmatch Guest unacceptable }&lt;br /&gt;      dec %x &lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-3358158821755663786?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/3358158821755663786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=3358158821755663786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/3358158821755663786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/3358158821755663786'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/04/mass-guest-kicker.html' title='Mass Guest Kicker'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-6628948087370171666</id><published>2008-04-01T10:13:00.000-07:00</published><updated>2008-04-01T10:21:09.720-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='War Script'/><title type='text'>Advanced-[|BestwaR|]-X`edition</title><content type='html'>Introduction&lt;br /&gt;&lt;br /&gt;This is actually an addon script....for protection and revenge, this script equipped with a socket which will act as deoper, therefore it will only fully worked when both nicks have operator access in a channel. well this script was designed to work on dalnet servers. Menu is available...! to use it just copy and paste it into your mirc remote editor then save ..and to get the initial settings pls restart your mirc.....that's it.&lt;br /&gt;&lt;br /&gt;by:aditya&lt;br /&gt;&lt;br /&gt;;==============================&lt;br /&gt;;&amp;#8226;Advanced-[|BestwaR|]-X`edition&amp;#8226;&lt;br /&gt;;&amp;#8226;Copyright © 2002 &lt;br /&gt;;&amp;#8226;All Rights Reserved.&lt;br /&gt;;&amp;#8226;Author: Aditya a.k.a [|Red-X|]&lt;br /&gt;;&amp;#8226;for mIRC version 6.03+&lt;br /&gt;:&amp;#8226;Hashtable multichannel&lt;br /&gt;;==============================&lt;br /&gt;;--------=&amp;#8226;Advanced-[|BestwaR|]-X`edition&amp;#8226; Multiopponent&amp;#8226;=------;&lt;br /&gt;;Pls. don't change any of the codes, it will make the remote script not work properly&lt;br /&gt;on ^+20:JOIN:#:{ .timer14 1 7 _checkme $chan | haltdef }&lt;br /&gt;on *:PART:#:{ if ($istok($hget($+(war-,$chan),warlist),$nick,44) == $true) { hadd $+(war-,$chan) warlist $remtok($hget($+(war-,$chan),warlist),$nick,1,44) } | elseif ($level($nick) == 20) { part $chan $+($ad_msg) | haltdef } }&lt;br /&gt;on *:NICK:{ if ($istok($hget($+(war-,$chan),warlist),$nick,44) == $true) { hadd -m $+(war-,$chan) warlist $reptok($hget($+(war-,$chan),warlist),$nick,$newnick,1,44) | if ($me isop $chan) kick $chan $newnick 4Change nick..he..he } | elseif ($level($nick) == 20) { .rlevel 20 | .auser 20 $newnick | .timer 1 1 sockdeoper nick $+($ulist(*,20,1),]) } }&lt;br /&gt;alias -l _checkme { if (!%_kickthem) { reset_join $1 } }&lt;br /&gt;#war off&lt;br /&gt;on !*:JOIN:#:{&lt;br /&gt;  if ($hfind($+(war,$chan),$address($nick,2),1,w).data) {&lt;br /&gt;    inc -u1 %nickjoin&lt;br /&gt;    hadd -m $+(war-,$chan) warlist $addtok($hget($+(war-,$chan),warlist),$nick,44)&lt;br /&gt;    if ($me isop $chan) &amp;&amp; (%nickjoin &lt; 4) &amp;&amp; (!%`kicker) {&lt;br /&gt;      kick $chan $kicklist $kick: | if (%banlag.on) { raw -q mode $chan +b $wildsite } &lt;br /&gt;    }&lt;br /&gt;    else { if (%onjoin_deop.on) &amp;&amp; (!%`dop) { set -u2 %`dop 1 | sockdeoper ChanServ deop $chan $replace($hget($+(war-,$chan),warlist),$chr(44),$chr(32)) } &lt;br /&gt;    } &lt;br /&gt;  } &lt;br /&gt;  else { halt }&lt;br /&gt;}&lt;br /&gt;on *:OP:#:{&lt;br /&gt;  if ($opnick == $me) &amp;&amp; ($nick == ChanServ) &amp;&amp; (!%op) {&lt;br /&gt;    set %op yes&lt;br /&gt;    if (!$hget($+(war-,$chan),warlist)) return&lt;br /&gt;    set -u1 %`kicker ! &lt;br /&gt;    var %num_fast = $numtok($hget($+(war-,$chan),warlist),44)&lt;br /&gt;    if (%num_fast &lt;= 4) { raw -q kick $chan $hget($+(war-,$chan),warlist) $adit.ad }&lt;br /&gt;    elseif (%num_fast &gt; 4) { &lt;br /&gt;      while (%num_fast &gt;= 1) {&lt;br /&gt;        %kick_warlist = $addtok(%kick_warlist,$gettok($hget($+(war-,$chan),warlist),%num_fast,44),44)&lt;br /&gt;        inc %kick_limit&lt;br /&gt;        if (%kick_limit == 4) { raw -q kick $chan %kick_warlist 15,2Out | unset %kick_* }&lt;br /&gt;        dec %num_fast&lt;br /&gt;      }&lt;br /&gt;      if (%kick_warlist) { kick $chan %kick_warlist 15,4Out | unset %kick_* }&lt;br /&gt;    }&lt;br /&gt;    if (!%ban) { .timer15 1 0 mode_ban $chan | %ban = 1 }&lt;br /&gt;  }&lt;br /&gt;  elseif (%op_deop.on) &amp;&amp; ($istok($hget($+(war-,$chan),warlist),$opnick,44) == $true) &amp;&amp; ($me !isop $chan) &amp;&amp; (!%`dop) {&lt;br /&gt;    set -u1 %`dop 1 | sockdeoper ChanServ deop $chan $replace($hget($+(war-,$chan),warlist),$chr(44),$chr(32)) &lt;br /&gt;  } &lt;br /&gt;}&lt;br /&gt;#war end&lt;br /&gt;on ^*:notice:*DEOP*was successful*:?:{ if ($nick == ChanServ) { haltdef } }&lt;br /&gt;on ^*:NOTICE:massdeop*:#:{ unset %op | sockdeoper ChanServ op $chan $me | if ($3 ison $chan) { hadd -m $+(war-,$chan) warlist $addtok($hget($+(war-,$chan),warlist),$3,44) } }&lt;br /&gt;on ^*:NOTICE:*has opped*:#:{&lt;br /&gt;  if ($nick == ChanServ) &amp;&amp; ($istok($hget($+(war-,$chan),warlist),$4,44) == $true) &amp;&amp; ($4 ison $chan) {&lt;br /&gt;    if ($me !isop $chan) &amp;&amp; (!%`dop) { set -u1 %`dop 1 | sockdeoper ChanServ deop $chan $4 }&lt;br /&gt;    haltdef&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;;alias -l chan_cmd {&lt;br /&gt;;  if ($hget($+(war-,$1),warlist)) &amp;&amp; (!%`dop) { set -u2 %`dop 1 | sockdeoper ChanServ deop $1 $replace($hget($+(war-,$1),warlist),$chr(44),$chr(32)) }&lt;br /&gt;;  ChanServ op $1 $me&lt;br /&gt;;}&lt;br /&gt;on ^*:NOTICE:*has deopped*:#:{&lt;br /&gt;  if ($4 == $me) &amp;&amp; ($nick == ChanServ) &amp;&amp; (%op) {&lt;br /&gt;    unset %op | kicker:&lt;br /&gt;    if ($1 ison $chan) { hadd -m $+(war-,$chan) warlist $addtok($hget($+(war-,$chan),warlist),$1,44) }&lt;br /&gt;    if ($hget($+(war-,$chan),warlist)) &amp;&amp; (!%`dop) { set -u2 %`dop 1 | sockdeoper ChanServ deop $chan $replace($hget($+(war-,$chan),warlist),$chr(44),$chr(32)) }&lt;br /&gt;    .timer11 1 0 ChanServ op $chan $me&lt;br /&gt;    haltdef&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;on !*:DEOP:#:{&lt;br /&gt;  if ($opnick == $me) &amp;&amp; ($nick != ChanServ) &amp;&amp; (%op) {&lt;br /&gt;    unset %op | kicker:&lt;br /&gt;    hadd -m $+(war,$chan) $nick $fulladdress&lt;br /&gt;    hadd -m $+(war-,$chan) warlist $addtok($hget($+(war-,$chan),warlist),$nick,44)&lt;br /&gt;    sockdeoper ChanServ deop $chan $nick&lt;br /&gt;    .timer12 1 0 ChanServ op $chan $me&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;alias -l kicker: { if (%`kicker) { unset %`kicker } }&lt;br /&gt;alias -l fastjoin { return $iif(%kick_me &lt;= 3,$true,$false) } &lt;br /&gt;alias -l reset_join { if ($me ison $1) { unset %kick_me | %_kickthem = ! | if ($me isop $1) { if (%mode_chan) { mode $1 - $+ %mode_chan | unset %mode_chan } | if (%_b) ban -r $1 $me 2 | unset %_b } } }&lt;br /&gt;on *:KICK:#:{&lt;br /&gt;  if ($knick != $me) &amp;&amp; ($istok($hget($+(war-,$chan),warlist),$knick,44) == $true) {&lt;br /&gt;    hadd $+(war-,$chan) warlist $remtok($hget($+(war-,$chan),warlist),$knick,1,44) &lt;br /&gt;    if ($nick == $me) {&lt;br /&gt;      if (%kick_me) &amp;&amp; (!%_rj) { set -u4 %_rj 1 | .timer13 1 4 reset_join $chan } &lt;br /&gt;      if (%nickchanger.on) &amp;&amp; (!%change_nick) { set -u5 %change_nick ! | change_nick }&lt;br /&gt;      halt &lt;br /&gt;  } }&lt;br /&gt;  elseif ($knick == $me) &amp;&amp; ($nick != $me) {&lt;br /&gt;    inc %kick_me | .timer1? off | unset %ban %_kickthem | kicker:&lt;br /&gt;    if ($group(#war) == on) {&lt;br /&gt;      %warchan = $chan&lt;br /&gt;      hadd -m $+(war,$chan) $nick $fulladdress&lt;br /&gt;      hadd -m $+(war-,$chan) warlist $addtok($hget($+(war-,$chan),warlist),$nick,44) &lt;br /&gt;    }&lt;br /&gt;    if ($fastjoin == $true) { if (%op) { sockdeoper ChanServ deop $chan $replace($hget($+(war-,$chan),warlist),$chr(44),$chr(32)) | unset %op }&lt;br /&gt;      .timerrejoin 1 0 join $chan&lt;br /&gt;    }&lt;br /&gt;    else { .timerinvite 1 $rand(8,15) ChanServ invite $chan }&lt;br /&gt;    halt&lt;br /&gt;  }&lt;br /&gt;  else { if (%user_prot.on) {  if ($hfind($+(protect,$chan),$ial($knick,1),0,w)) &amp;&amp; ($nick != $me) &amp;&amp; ($me isop $chan) { kick $chan $nick Sorry $knick $+ `s address is on my protection list } | halt } | halt }&lt;br /&gt;}&lt;br /&gt;on *:INVITE:%warchan:{&lt;br /&gt;  if ($nick == ChanServ) {&lt;br /&gt;    if (!$hget($+(war-,%warchan),warlist)) join %warchan&lt;br /&gt;    else { unset %op | .timerrejoinonban 1 3 deop_kicklist %warchan }&lt;br /&gt;  }&lt;br /&gt;  else { halt }&lt;br /&gt;}&lt;br /&gt;alias -l deop_kicklist {&lt;br /&gt;  ChanServ deop $1 $replace($hget($+(war-,$1),warlist),$chr(44),$chr(32))&lt;br /&gt;  join $1&lt;br /&gt;}&lt;br /&gt;raw 353:*:{&lt;br /&gt;  var %nick.list = $remove($5-,@,+), %xchan = $3&lt;br /&gt;  if ($hget($+(war-,%xchan),warlist)) .hdel $+(war-,%xchan) warlist&lt;br /&gt;  var %num.raw = $hget($+(war,%xchan),0).item&lt;br /&gt;  while (%num.raw &gt;= 1) {&lt;br /&gt;    if ($istok(%nick.list,$hget($+(war,%xchan),%num.raw).item,32) == $true) { hadd -m $+(war-,%xchan) warlist $addtok($hget($+(war-,%xchan),warlist),$hget($+(war,%xchan),%num.raw).item,44) }&lt;br /&gt;    if ($numtok($hget($+(war-,%xchan),warlist),44) == 8) { break }&lt;br /&gt;    dec %num.raw &lt;br /&gt;  }&lt;br /&gt;  if ($fastjoin == $false) &amp;&amp; ($hget($+(war-,%xchan),warlist)) &amp;&amp; (!%`dop) { set -u2 %`dop 1 | sockdeoper ChanServ deop %xchan $replace($hget($+(war-,%xchan),warlist),$chr(44),$chr(32)) }&lt;br /&gt;}&lt;br /&gt;on !@*:MODE:#:{ if (%mode.on) &amp;&amp; ( $nick != ChanServ) { var %mode_chan = $replace($1-,-,&amp;) | %mode_chan = $replace(%mode_chan,+,-) | mode $chan $replace(%mode_chan,&amp;,+) } }&lt;br /&gt;RAW 605:*:{ if ($active ischan) &amp;&amp; ($hfind($+(war,$chan),$3)) { hdel $+(war-,$chan) warlist $hfind($+(war,$chan),$3) } } &lt;br /&gt;RAW 471:*:{ %mode_chan = l | %kick_me = 4 | .timerinvite 1 $rand(5,10) ChanServ invite $2 }&lt;br /&gt;RAW 475:*:{ %mode_chan = k | %kick_me = 4 | .timerinvite 1 $rand(5,10) ChanServ invite $2 }&lt;br /&gt;RAW 473:*:{ %mode_chan = i | %kick_me = 4 | .timerinvite 1 $rand(8,15) ChanServ invite $2 }&lt;br /&gt;RAW 474:*:{ %_b = ! | %kick_me = 4 | .raw -q ChanServ unban $2 | .timerinvite 1 $rand(8,15) ChanServ invite $2 }&lt;br /&gt;RAW 477:*:{ %mode_chan = R | %kick_me = 4 | .timerinvite 1 $rand(8,15) ChanServ invite $2 }&lt;br /&gt;RAW 441:*:{ if (%warchan) hadd $+(war-,%warchan) warlist $remtok($hget($+(war-,%warchan),warlist),$2,1,44) | haltdef }&lt;br /&gt;RAW 401:*:{ if (%warchan) hadd $+(war-,%warchan) warlist $remtok($hget($+(war-,%warchan),warlist),$2,1,44) | haltdef }&lt;br /&gt;RAW 600:*:{ echo -a *  Watch:  Services are now on IRC :Online | amsg  ALERT:  DALnet services are now on IRC :Online | halt }&lt;br /&gt;RAW 601:*:{ echo -a *  Watch:  Services leaving IRC :4Offline | halt }&lt;br /&gt;RAW 604:*:{ echo -a *  Watch:  Services are currently :Online | halt }&lt;br /&gt;RAW 605:*:{ echo -a *  Watch:  Services are currently :4Offline | halt }&lt;br /&gt;RAW 332:*:{ if ($2 == %warchan) halt | else { echo $2 * 2,15«16»15,2 TOPIC 2,15«16» $3- | halt } }&lt;br /&gt;RAW 333:*:{ if ($2 == %warchan) halt | else { echo $2 * 2,15«16»15,2 Set by 2,15«16» $3 2On $asctime($4) | halt } }&lt;br /&gt;RAW 482:*:{ halt }&lt;br /&gt;#banlocker off&lt;br /&gt;on @*:UNBAN:#:{&lt;br /&gt;  if ($hfind($+(war,$chan),$banmask,1,w).data) &amp;&amp; ($banmask != *!*@*) { mode $chan +b $banmask }&lt;br /&gt;}&lt;br /&gt;#banlocker end&lt;br /&gt;#banprotect off&lt;br /&gt;on @*:BAN:#:{&lt;br /&gt;  if ($banmask iswm $address($me,5)) { mode $chan -ob+b $nick $banmask $wildsite | kick $chan $nick 5[4&amp;#8226;5S4Þ5i4r5i1&amp;#8224;5~Ban4&amp;#8226;5] &lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;#banprotect end&lt;br /&gt;alias f8 { if (!%socknick) { %socknick = $$?="type DEOPER socket nickname" } | sockopen geneX $$?="type server" $$?="type port" | echo 4 -a Loading %socknick plz wait }&lt;br /&gt;on *:CONNECT:{ .ial on | .auser 20 $me | %war_nick = $me | .watch +ChanServ | .timer 1 1 sockopen geneX $server $port }&lt;br /&gt;on *:disconnect:{ sockclose * | .rlevel 20 | if ($group(#awignore) == on) disable #awignore | unset %away.* | .timerSRELOAD-* off }&lt;br /&gt;on *:SOCKCLOSE:*: {&lt;br /&gt;  echo -a *  SOCKET:  4** Error detected on  $+ $sockname $+ , reloading&lt;br /&gt;  .timerSRELOAD- [ $+ [ $sockname ] ] -o 1 2 .sockopen $sockname $server $port&lt;br /&gt;}&lt;br /&gt;on *:SOCKOPEN:geneX:{&lt;br /&gt;  if ($sockerr &gt; 0) { return }&lt;br /&gt;  window -aneg1 @geneX&lt;br /&gt;  sockwrite -tn $sockname nick %socknick&lt;br /&gt;  sockwrite -tn $sockname USER redx - - :()CYB()ORG()&lt;br /&gt;  sockwrite -tn $sockname join $xchan&lt;br /&gt;  .echo 4 -a %socknick connected ....plz wait&lt;br /&gt;}&lt;br /&gt;on *:sockread:geneX:{&lt;br /&gt;  if ($sockerr &gt; 0) return&lt;br /&gt;  sockread %geneXsock&lt;br /&gt;  if ($sockbr == 0) return&lt;br /&gt;  if ($gettok(%geneXsock,1,32) == PING) { sockwrite -tn $sockname PONG $gettok(%geneXsock,2,32) }&lt;br /&gt;  if ($gettok(%geneXsock,2,32) == 001) {&lt;br /&gt;    echo -a 1*** ( $+ %socknick  $+ socket $+ ) 4Connected | change_socketnick&lt;br /&gt;  }&lt;br /&gt;  if ($remove($gettok(%geneXsock,1,33),:) == Nickserv) &amp;&amp; (This nick is owned by someone else isin %geneXsock) { nick.id }&lt;br /&gt;  if ($gettok(%geneXsock,2,32) == NOTICE) { halt }&lt;br /&gt;  if ($gettok(%geneXsock,2,32) isnum 409) { halt }&lt;br /&gt;  if (%geneXsock == $null) %geneXsock = -&lt;br /&gt;  aline -h @geneX %geneXsock&lt;br /&gt;  unset %geneXsock&lt;br /&gt;}&lt;br /&gt;#awignore off&lt;br /&gt;on *:Open:?=:{&lt;br /&gt;  if ($away == $true) { &lt;br /&gt;    if ($hfind($+(war,$chan),$address($nick,2),1,w).data)  { msg $nick sorry you are being ignored...cause your nick is in my warlist | closemsg $nick }&lt;br /&gt;    elseif ($hmatch($+(protect,$chan),$chat(1).ip)) { msg =$nick Hi! I'll be with you soonest... }&lt;br /&gt;    else { msg $nick 5 I am currently away Reason: ( $+ $awaymsg $+ ) Gone For: ( $+ $duration($awaytime) $+ ) , back in a moment }&lt;br /&gt;    haltdef&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;on *:notice:*:?:{ if ($away == $true) &amp;&amp; ($nick == $me) { halt } { notice $nick 5 I am currently away Reason: ( $+ $awaymsg $+ ) Gone For: ( $+ $duration($awaytime) $+ )  } }&lt;br /&gt;on *:action:*:*:{ if ($away == $true) { if ($me isin $strip($1-)) notice $nick 5 I am currently away Reason: ( $+ $awaymsg $+ ) Gone For: ( $+ $duration($awaytime) $+ )  } | haltdef }&lt;br /&gt;on *:text:*:#:{ if ($away == $true) { if ($me isin $strip($1-)) notice $nick 5 I am currently away Reason: ( $+ $awaymsg $+ ) Gone For: ( $+ $duration($awaytime) $+ )  } | haltdef }&lt;br /&gt;#awignore end&lt;br /&gt;#ctcpflood off&lt;br /&gt;ctcp *:*:*: {&lt;br /&gt;  if (%ctcps == $null) { set -u8 %ctcps 1 | return }&lt;br /&gt;  else { inc %ctcps }&lt;br /&gt;  if (%ctcps &gt; 3) {&lt;br /&gt;    .ignore -u45 $wildsite&lt;br /&gt;    msg $nick Autoignoring you - CTCP Flood detected.&lt;br /&gt;    echo -a Ctcp flood from $wildsite - Ignoring $wildsite for 45 seconds...&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;#ctcpflood end&lt;br /&gt;alias -l kicklist { return $gettok($hget($+(war-,$chan),warlist),1-4,44) }&lt;br /&gt;alias -l sockdeoper { sockwrite -tn geneX $1- }&lt;br /&gt;alias -l mode_ban { if ($me isop $1) { if ($numtok($hget($+(war-,$1),warlist),44) &lt;= 4) { raw -q MODE $1 + [ $+ [ $str(b,$numtok($hget($+(war-,$1),warlist),44)) ] ] $+ -bb $replace($hget($+(war-,$1),warlist),$chr(44),$chr(32)) * $me } | else { raw -q MODE $1 -bb * $me } } }&lt;br /&gt;alias kick: { return $iif(%kick.msg,$red(%kick.msg),$adit.ad) }&lt;br /&gt;alias adit { return °8,1º4,1©15,1 $1- 4,1©8,1º° }&lt;br /&gt;alias set_away { if ($server) { if ($group(#awignore) == on) &amp;&amp; ($away) { amsg I am now back from away, Reason: ( $+ $awaymsg $+ ) Gone For: ( $+ $duration($awaytime) $+ ) | .disable #awignore | away | nick $remove($ulist(*,20,1),-AFK) | .timer 1 5 rlevel 20 | .timer 1 5 auser 20 $me | halt } | else { .enable #awignore  | %away.msg = $?="type away massage" | away $adit(%away.msg) |  amsg I'm away for : ( $+ $awaymsg $+ ) | tnick $+($ulist(*,20,1),-AFK) | halt } } | else echo 2 -a ***Not connected to a server }&lt;br /&gt;alias red { return 2,15«16»2 $1- 2,15«16» }&lt;br /&gt;alias -l change_nick { if ($me isop $chan) { tnick %war_nick $+ $+($chr(91),$rand(1000,9999),$chr(93)) } }&lt;br /&gt;alias -l change_socketnick { if ($?!="Do you want to change the socket's nickname?" == $true) { sockwrite -tn $sockname nick $$?="type new socket nickname" | echo -a *** the socket's new nick is now set to :  $+ $!  } }&lt;br /&gt;alias -l xchan { return $+($chr(35),help-script) }&lt;br /&gt;alias -l set_protection { .enable #banprotect #ctcpflood | .unset %mode.* %user_pro* %banlag.* | %banlag.off = (off) | %mode.on = (on) | %user_prot.on = (on) | .timer 1 1 echo $colour(info) -a ***Protections are now set to 7On }&lt;br /&gt;alias socket_nick { $$?="enter DEOPER socket nickname" | %socknick = $! | echo -a ***your DEOPER socket nickname is now: 0,1 $+(%socknick)  }&lt;br /&gt;alias -l nick.id { .sockwrite -tn $sockname nickserv identify $$?*="Type your DEOPER password ? NickServ request it!" }&lt;br /&gt;alias adit.ad { return 15,1&amp;#8226;Advanced-3,1[9|0B15e14stw15a0R9|3]15-X`edition&amp;#8226; }&lt;br /&gt;alias ad_msg { return 15,1&amp;#8226;Advanced-3,1[9|0B15e14stw15a0R9|3]15-X`edition&amp;#8226;0,15by15,1[|Red-X|]0¤14,1The most advanced survival game/war script.....on DALnet: to get it, find him in #help-script }&lt;br /&gt;alias -l user.name { return &amp;#8226;Advanced-[|BestwaR|]-X`edition&amp;#8226;¤by-[|Red-X|]¤ }&lt;br /&gt;alias -l unset_prot { .disable #banprotect #ctcpflood | .unset %mode.* %user_pro* %banlag.* | %mode.off = (off) | %user_prot.off = (off) | %banlag.off = (off) }&lt;br /&gt;alias -l war_settings { _start | %username = &amp;#8226;Advanced-[|BestwaR|]-X`edition&amp;#8226;¤by-[|Red-X|]¤ | .disable #war #banlocker | .fullname %username | .identd on $+(aditya,$rand(0,100)) | unsetall | %war.status.on = [status:Peace] | %banlag.off = (off) | %onjoin_deop.off = (off) | %op_deop.off = (off) | %nickchanger.off = [off] | %socknick = $+([|BestwaR-X|],$r(10,99)) | unset_prot }&lt;br /&gt;alias f2 { ctcp $me ping | ctcp chanserv@services.dal.net ping }&lt;br /&gt;alias -l reset_war_ban { &lt;br /&gt;  if ($me !isop $chan) return&lt;br /&gt;  var %i = $ibl($chan,0) &lt;br /&gt;  while (%i &gt; 0) {&lt;br /&gt;    if ($ibl($chan,%i) iswm $address($me,5)) var %iban_list = $addtok(%iban_list,$ibl($chan,%i),32)&lt;br /&gt;    dec %i&lt;br /&gt;  }&lt;br /&gt;  mode $chan - [ $+ [ $str(b,$numtok(%iban_list,32)) ] ] %iban_list&lt;br /&gt;}&lt;br /&gt;alias kick {&lt;br /&gt;  kick $1 $2 $3- &lt;br /&gt;}&lt;br /&gt;on 1:start:{ echo $colour(info) -a Welcome to 15,1&amp;#8226;Advanced-3,1[9|0B15e14stw15a0R9|3]15-X`edition&amp;#8226; | war_settings | .fullname $user.name }&lt;br /&gt;on 1:load:{&lt;br /&gt;  if ($version &gt;= 6.02) { echo -a You have installed $adit.ad ,an advanced war/revenge script }&lt;br /&gt;  else { echo -a *** $adit.ad was made for mIRC 6.02 or greater. Please upgrade | .unload -rs $script }&lt;br /&gt;}&lt;br /&gt;alias -l _start {&lt;br /&gt;  echo $colour(info) -a Author: [|Red-X|]  &lt;br /&gt;  echo 7 -a -----------------------------------------------------&lt;br /&gt;  echo 7 -a - Introduction&lt;br /&gt;  echo $colour(info) -a - 1) &amp;#8226;Advanced Code and compatible with miRC v6.02+, run on DALnet&lt;br /&gt;  echo $colour(info) -a - 2) &amp;#8226;Clearer and easier to see options menu :&lt;br /&gt;  echo $colour(info) -a - 3) &amp;#8226;Socket connection is available for deoping enemies&lt;br /&gt;  echo $colour(info) -a - 4) &amp;#8226;War-mode or Peace-mode,Ban protection,Banlocker&lt;br /&gt;  echo $colour(info) -a - 5) &amp;#8226;Channel mode protection,User protection,ctcp flood protection&lt;br /&gt;  echo $colour(info) -a - 6) &amp;#8226;Auto unban system, and away system&lt;br /&gt;  echo $colour(info) -a - 7) &amp;#8226;Fully Hashtable data management for optimal performance.&lt;br /&gt;  echo $colour(info) -a - 8) &amp;#8226;Bug fixed, and Integrated script (All options are in one script file)&lt;br /&gt;  echo $colour(info) -a - 9) &amp;#8226;Copyright © 2002 [|BestwaR|] Techonology Inc.&lt;br /&gt;  echo 7 -a -----------------------------------------------------&lt;br /&gt;  echo $colour(info) -a - Notes :1) &amp;#8226;Set protection options to 7On, only when you are in 7Peace Mode or while you are acting as channel operator.&lt;br /&gt;  echo $colour(info) -a - 2) &amp;#8226;Socket (default nick:cyborg) will automatically be connected to a same server where client connecting, or press F8 to load it manually.&lt;br /&gt;  echo $colour(info) -a Have....fun! Need help? just drop ur mail to net_ryan@yahoo.com or join #indohelpdesk or #help-script (dalnet)&lt;br /&gt;}&lt;br /&gt;;------------EoS--&lt;br /&gt;;=menu&lt;br /&gt;menu channel,menubar {&lt;br /&gt;  $iif($active ischan,&amp;IAL state for #)&lt;br /&gt;  .$iif($chan(#).ial == $true,All addresses OK):echo No need to update IAL for chan #&lt;br /&gt;  .$iif($chan(#).ial == $false,IAL Incomplete. Update?):.who #&lt;br /&gt;  &amp;Main Settings&lt;br /&gt;  .$iif(%war.status.on,[ %war.status.on ],[ %war.status.off ] ):{ if (%war.status.on) { unset %war.status.on | set %war.status.off [status:Revenge] | .enable #war | unset_prot | echo $colour(info) -a ***The script is now set to 7Revenge Mode | if ($active != status window) say Activate 7Revenge Mode } | else { set %war.status.on [status:Peace] | unset %war.status.off | .disable #war | set_protection | echo $colour(info) -a ***The Script is now set to 7Peace Mode | if ($active != status window) say Activate 7Peace Mode } }&lt;br /&gt;  .&amp;Clear Enemy-list:{ if ($active ischan) { .hdel -w $+(war,$chan) * | .hdel -w $+(war-,$chan) warlist | msg $active 1Clear } | echo $colour(info) -a ***Removing all users from the enemy list :7done... }&lt;br /&gt;  .&amp;onJoin Settings  &lt;br /&gt;  ..&amp;onJoin-ban $+ $chr(32) $+ $iif(%banlag.on,[ %banlag.on ],[ %banlag.off ] ):{ if (%banlag.on) { unset %banlag.on | set %banlag.off (off) | echo $colour(info) -a ***on-Join ban Off } | else { set %banlag.on (on) | unset %banlag.off | echo $colour(info) -a ***on-Join ban On } }&lt;br /&gt;  ..&amp;onJoin-deop $+ $chr(32) $+ $iif(%onjoin_deop.on,[ %onjoin_deop.on ],[ %onjoin_deop.off ] ):{ if (%onjoin_deop.on) { unset %onjoin_deop.on | set %onjoin_deop.off (off) | echo $colour(info) -a ***on-Join deop Off } | else { set %onjoin_deop.on (on) | unset %onjoin_deop.off | echo $colour(info) -a ***on-Join deop On:7Will deop opponents which joined a channel,when you are not on op position } }&lt;br /&gt;  .&amp;onOp-deop $+ $chr(32) $+ $iif(%op_deop.on,[ %op_deop.on ],[ %op_deop.off ] ):{ if (%op_deop.on) { unset %op_deop.on | set %op_deop.off (off) | echo $colour(info) -a ***on-Op deop Off } | else { set %op_deop.on (on) | unset %op_deop.off | echo $colour(info) -a ***on-Op deop On:7Will deop opponents which are being opped,when you are not on op position } }&lt;br /&gt;  .&amp;Ban-Locker ( $+ $group(#banlocker) $+ ) : { if ($group(#banlocker) == on) { .disable #banlocker | echo $colour(info) -a ***Banlocker is now Off | halt } | else { .enable #banlocker | echo $colour(info) -a ***Banlocker is now On | halt } }&lt;br /&gt;  .&amp;Nickchanger $iif(%nickchanger.on,[ %nickchanger.on ],[ %nickchanger.off ] ):{ if (%nickchanger.on) { unset %nickchanger.on | set %nickchanger.off [off] | echo $colour(info) -a ***nickchanger Off } | else { set %nickchanger.on [on] | unset %nickchanger.off | echo $colour(info) -a ***nickchanger On  } }&lt;br /&gt;  .-&lt;br /&gt;  &amp;DEOPER socket&lt;br /&gt;  .$iif($sock(geneX).status,&amp;Connected,not &amp;Connected) &lt;br /&gt;  ..$iif(!$sock(geneX).status,&amp;Load): { if (!$window(@geneX)) { window -aneg1 @geneX } | %socknick = $$?="Type socket deoper's nick" | sockopen geneX $$?="type server i.e kernel-c.dal.net" $$?="type port i.e 7000" }&lt;br /&gt;  -&lt;br /&gt;  &amp;Reset Ban&amp;&amp;Enemy list { if ($active ischan) { .hdel -w $+(war-,$chan) warlist | reset_war_ban } | echo $colour(info) -a ***Reseting my ban &amp; enemy list 7done...:Do it while in a channel } &lt;br /&gt;  -&lt;br /&gt;  &amp;Protections&lt;br /&gt;  .&amp;Ban Protection ( $+ $group(#banprotect) $+ ) : { if ($group(#banprotect) == on) { .disable #banprotect | echo $colour(info) -a ***Ban Protection is now Off | halt } | else { .enable #banprotect | echo $colour(info) -a ***Ban Protection is now On | halt } }&lt;br /&gt;  .&amp;Chan. Mode Potect. $+ $chr(32) $+ $iif(%mode.on,[ %mode.on ],[ %mode.off ] ):{ if (%mode.on) { unset %mode.on | set %mode.off (off) | echo $colour(info) -a ***Channel Mode protection-Off  } | else { set %mode.on (on) | unset %mode.off |  echo $colour(info) -a ***Channel Mode protection-On } }&lt;br /&gt;  .&amp;User Protection $+ $chr(32) $+ $iif(%user_prot.on,[ %user_prot.on ],[ %user_prot.off ] ):{ if (%user_prot.on) { unset %user_prot.on | set %user_prot.off (off) | echo $colour(info) -a ***User protection-Off   } | else { set %user_prot.on (on) | unset %user_prot.off | echo $colour(info) -a ***User protection-On  } }&lt;br /&gt;  .&amp;CTCP Flood Prot. ( $+ $group(#ctcpflood) $+ ) : { if ($group(#ctcpflood) == on) { .disable #ctcpflood | echo $colour(info) -a ***CTCP flood Protection is now Off | halt } | else { .enable #ctcpflood | echo $colour(info) -a ***CTCP flood Protection is now On | halt } }&lt;br /&gt;  - &lt;br /&gt;  Set kick massage:{ set %kick.msg $?="Type kick massage:" | echo $colour(info) -a ***Your kick massage is : $red(%kick.msg) }&lt;br /&gt;  -&lt;br /&gt;  &amp;Set Away ( $+ $group(#awignore) $+ ) : { set_away }&lt;br /&gt;  -&lt;br /&gt;  &amp;Advertise { if ($active != status window) say I'm activating $ad_msg | else echo -s $adit.ad }&lt;br /&gt;  -&lt;br /&gt;  ¤AbOuT¤&lt;br /&gt;  .[|BestwaR|] { .url http://www.brain-crash.com }&lt;br /&gt;  .&amp;mail [|Red-X|] { .run mailto:net_ryan@yahoo.com }&lt;br /&gt;}&lt;br /&gt;menu nicklist {&lt;br /&gt;  Protection list&lt;br /&gt;  .Add:{ if ($$1) { .hadd -m $+(protect,$chan) $address($$1,2) $$1 | .msg $$1 you are now under myprotection } }&lt;br /&gt;  .Del:{ if ($$1) { .hdel -w $+(protect,$chan) $address($$1,2) * | echo -a $$1 has been removed from protection list  } }&lt;br /&gt;  WaR list&lt;br /&gt;  .Add:{ if ($active ischan) hadd -m $+(war,$chan) $$1 $address($1,5) | echo -a $$1 has been added to warlist }&lt;br /&gt;  .Del:{ if ($active ischan) hdel -sw $+(war,$chan) $$1 * | .msg $$1 your address has been removed from warlist }&lt;br /&gt;}&lt;br /&gt;menu query {&lt;br /&gt;  WaR list&lt;br /&gt;  .Add:{ var %chan = $$?="Type channel this nick to be warlisted" | hadd -m $+(war,%chan) $$1 $address($1,5) | echo -a $$1 has been added to warlist }&lt;br /&gt;  .Del:{ var %chan = $$?="Type channel this nick to be remove fr. warlist" | hdel -sw $+(war,%chan) $$1 * | say you have been removed from warlist }&lt;br /&gt;  Block &amp;User-massages: {&lt;br /&gt;    var %stopmsg.msg = $$?="Enter Massage"&lt;br /&gt;    ignore -pn $active | ignore -u60 $active | say $+ , %stopmsg.msg&lt;br /&gt;  }&lt;br /&gt;  Allow User to MSG you: { ignore -rp $active | say Now accepting messages from you. :) } &lt;br /&gt;}&lt;br /&gt;menu @geneX { &lt;br /&gt;  clear screen:clear&lt;br /&gt;  close window:window -c @geneX&lt;br /&gt;  disconnect { sockclose geneX | .timerSRELOAD-* off | echo $colour(info) -a *** %socknick has left iRC }&lt;br /&gt;  -&lt;br /&gt;  connect socket : { window -aneg1 @geneX | sockopen geneX $$?="type server" 7000 }&lt;br /&gt;  change nick:{ %socknick = $$?="type new nick" | sockdeoper nick %socknick }&lt;br /&gt;  join:{ sockdeoper join #$$?="Type channnel (type it w/o #)" }&lt;br /&gt;  part:{ sockdeoper part #$$?="type channel (type it w/o #)" }&lt;br /&gt;  priv. msg:{ sockdeoper privmsg $$?="type nickname or #channel" : $+ $$?="type your massage" }&lt;br /&gt;}&lt;br /&gt;;-----------end of script-------------------;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-6628948087370171666?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/6628948087370171666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=6628948087370171666' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/6628948087370171666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/6628948087370171666'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/04/introduction-this-is-actually-addon.html' title='Advanced-[|BestwaR|]-X`edition'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-8347398592691707038</id><published>2008-04-01T10:04:00.000-07:00</published><updated>2008-04-01T10:21:09.720-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='War Script'/><title type='text'>Generation-x script war</title><content type='html'>Introduction&lt;br /&gt;&lt;br /&gt;This is actually an addon script....for protection and revenge, this script equipped with a socket which will act as deoper, therefore it will only fully worked when both nicks have operator access in a channel. well this script was designed to work on dalnet servers. Menu is available...! to use it just copy and paste it into your mirc remote editor then save ..and to get the initial settings pls restart your mirc.....that's it.&lt;br /&gt;&lt;br /&gt;If u want, get it here. just copy paste on notepad.&lt;br /&gt;&lt;br /&gt;by:aditya&lt;br /&gt;&lt;br /&gt;;==============================&lt;br /&gt;;&amp;#8226;Advanced-[|BestwaR|]-X`edition&amp;#8226;&lt;br /&gt;;&amp;#8226;Copyright © 2002 &lt;br /&gt;;&amp;#8226;All Rights Reserved.&lt;br /&gt;;&amp;#8226;Author: Aditya a.k.a [|Red-X|]&lt;br /&gt;;&amp;#8226;for mIRC version 6.03+&lt;br /&gt;:&amp;#8226;Hashtable multichannel&lt;br /&gt;;==============================&lt;br /&gt;;--------=&amp;#8226;Advanced-[|BestwaR|]-X`edition&amp;#8226; Multiopponent&amp;#8226;=------;&lt;br /&gt;;Pls. don't change any of the codes, it will make the remote script not work properly&lt;br /&gt;on ^+20:JOIN:#:{ .timer14 1 7 _checkme $chan | haltdef }&lt;br /&gt;on *:PART:#:{ if ($istok($hget($+(war-,$chan),warlist),$nick,44) == $true) { hadd $+(war-,$chan) warlist $remtok($hget($+(war-,$chan),warlist),$nick,1,44) } | elseif ($level($nick) == 20) { part $chan $+($ad_msg) | haltdef } }&lt;br /&gt;on *:NICK:{ if ($istok($hget($+(war-,$chan),warlist),$nick,44) == $true) { hadd -m $+(war-,$chan) warlist $reptok($hget($+(war-,$chan),warlist),$nick,$newnick,1,44) | if ($me isop $chan) kick $chan $newnick 4Change nick..he..he } | elseif ($level($nick) == 20) { .rlevel 20 | .auser 20 $newnick | .timer 1 1 sockdeoper nick $+($ulist(*,20,1),]) } }&lt;br /&gt;alias -l _checkme { if (!%_kickthem) { reset_join $1 } }&lt;br /&gt;#war off&lt;br /&gt;on !*:JOIN:#:{&lt;br /&gt;  if ($hfind($+(war,$chan),$address($nick,2),1,w).data) {&lt;br /&gt;    inc -u1 %nickjoin&lt;br /&gt;    hadd -m $+(war-,$chan) warlist $addtok($hget($+(war-,$chan),warlist),$nick,44)&lt;br /&gt;    if ($me isop $chan) &amp;&amp; (%nickjoin &lt; 4) &amp;&amp; (!%`kicker) {&lt;br /&gt;      kick $chan $kicklist $kick: | if (%banlag.on) { raw -q mode $chan +b $wildsite } &lt;br /&gt;    }&lt;br /&gt;    else { if (%onjoin_deop.on) &amp;&amp; (!%`dop) { set -u2 %`dop 1 | sockdeoper ChanServ deop $chan $replace($hget($+(war-,$chan),warlist),$chr(44),$chr(32)) } &lt;br /&gt;    } &lt;br /&gt;  } &lt;br /&gt;  else { halt }&lt;br /&gt;}&lt;br /&gt;on *:OP:#:{&lt;br /&gt;  if ($opnick == $me) &amp;&amp; ($nick == ChanServ) &amp;&amp; (!%op) {&lt;br /&gt;    set %op yes&lt;br /&gt;    if (!$hget($+(war-,$chan),warlist)) return&lt;br /&gt;    set -u1 %`kicker ! &lt;br /&gt;    var %num_fast = $numtok($hget($+(war-,$chan),warlist),44)&lt;br /&gt;    if (%num_fast &lt;= 4) { raw -q kick $chan $hget($+(war-,$chan),warlist) $adit.ad }&lt;br /&gt;    elseif (%num_fast &gt; 4) { &lt;br /&gt;      while (%num_fast &gt;= 1) {&lt;br /&gt;        %kick_warlist = $addtok(%kick_warlist,$gettok($hget($+(war-,$chan),warlist),%num_fast,44),44)&lt;br /&gt;        inc %kick_limit&lt;br /&gt;        if (%kick_limit == 4) { raw -q kick $chan %kick_warlist 15,2Out | unset %kick_* }&lt;br /&gt;        dec %num_fast&lt;br /&gt;      }&lt;br /&gt;      if (%kick_warlist) { kick $chan %kick_warlist 15,4Out | unset %kick_* }&lt;br /&gt;    }&lt;br /&gt;    if (!%ban) { .timer15 1 0 mode_ban $chan | %ban = 1 }&lt;br /&gt;  }&lt;br /&gt;  elseif (%op_deop.on) &amp;&amp; ($istok($hget($+(war-,$chan),warlist),$opnick,44) == $true) &amp;&amp; ($me !isop $chan) &amp;&amp; (!%`dop) {&lt;br /&gt;    set -u1 %`dop 1 | sockdeoper ChanServ deop $chan $replace($hget($+(war-,$chan),warlist),$chr(44),$chr(32)) &lt;br /&gt;  } &lt;br /&gt;}&lt;br /&gt;#war end&lt;br /&gt;on ^*:notice:*DEOP*was successful*:?:{ if ($nick == ChanServ) { haltdef } }&lt;br /&gt;on ^*:NOTICE:massdeop*:#:{ unset %op | sockdeoper ChanServ op $chan $me | if ($3 ison $chan) { hadd -m $+(war-,$chan) warlist $addtok($hget($+(war-,$chan),warlist),$3,44) } }&lt;br /&gt;on ^*:NOTICE:*has opped*:#:{&lt;br /&gt;  if ($nick == ChanServ) &amp;&amp; ($istok($hget($+(war-,$chan),warlist),$4,44) == $true) &amp;&amp; ($4 ison $chan) {&lt;br /&gt;    if ($me !isop $chan) &amp;&amp; (!%`dop) { set -u1 %`dop 1 | sockdeoper ChanServ deop $chan $4 }&lt;br /&gt;    haltdef&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;;alias -l chan_cmd {&lt;br /&gt;;  if ($hget($+(war-,$1),warlist)) &amp;&amp; (!%`dop) { set -u2 %`dop 1 | sockdeoper ChanServ deop $1 $replace($hget($+(war-,$1),warlist),$chr(44),$chr(32)) }&lt;br /&gt;;  ChanServ op $1 $me&lt;br /&gt;;}&lt;br /&gt;on ^*:NOTICE:*has deopped*:#:{&lt;br /&gt;  if ($4 == $me) &amp;&amp; ($nick == ChanServ) &amp;&amp; (%op) {&lt;br /&gt;    unset %op | kicker:&lt;br /&gt;    if ($1 ison $chan) { hadd -m $+(war-,$chan) warlist $addtok($hget($+(war-,$chan),warlist),$1,44) }&lt;br /&gt;    if ($hget($+(war-,$chan),warlist)) &amp;&amp; (!%`dop) { set -u2 %`dop 1 | sockdeoper ChanServ deop $chan $replace($hget($+(war-,$chan),warlist),$chr(44),$chr(32)) }&lt;br /&gt;    .timer11 1 0 ChanServ op $chan $me&lt;br /&gt;    haltdef&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;on !*:DEOP:#:{&lt;br /&gt;  if ($opnick == $me) &amp;&amp; ($nick != ChanServ) &amp;&amp; (%op) {&lt;br /&gt;    unset %op | kicker:&lt;br /&gt;    hadd -m $+(war,$chan) $nick $fulladdress&lt;br /&gt;    hadd -m $+(war-,$chan) warlist $addtok($hget($+(war-,$chan),warlist),$nick,44)&lt;br /&gt;    sockdeoper ChanServ deop $chan $nick&lt;br /&gt;    .timer12 1 0 ChanServ op $chan $me&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;alias -l kicker: { if (%`kicker) { unset %`kicker } }&lt;br /&gt;alias -l fastjoin { return $iif(%kick_me &lt;= 3,$true,$false) } &lt;br /&gt;alias -l reset_join { if ($me ison $1) { unset %kick_me | %_kickthem = ! | if ($me isop $1) { if (%mode_chan) { mode $1 - $+ %mode_chan | unset %mode_chan } | if (%_b) ban -r $1 $me 2 | unset %_b } } }&lt;br /&gt;on *:KICK:#:{&lt;br /&gt;  if ($knick != $me) &amp;&amp; ($istok($hget($+(war-,$chan),warlist),$knick,44) == $true) {&lt;br /&gt;    hadd $+(war-,$chan) warlist $remtok($hget($+(war-,$chan),warlist),$knick,1,44) &lt;br /&gt;    if ($nick == $me) {&lt;br /&gt;      if (%kick_me) &amp;&amp; (!%_rj) { set -u4 %_rj 1 | .timer13 1 4 reset_join $chan } &lt;br /&gt;      if (%nickchanger.on) &amp;&amp; (!%change_nick) { set -u5 %change_nick ! | change_nick }&lt;br /&gt;      halt &lt;br /&gt;  } }&lt;br /&gt;  elseif ($knick == $me) &amp;&amp; ($nick != $me) {&lt;br /&gt;    inc %kick_me | .timer1? off | unset %ban %_kickthem | kicker:&lt;br /&gt;    if ($group(#war) == on) {&lt;br /&gt;      %warchan = $chan&lt;br /&gt;      hadd -m $+(war,$chan) $nick $fulladdress&lt;br /&gt;      hadd -m $+(war-,$chan) warlist $addtok($hget($+(war-,$chan),warlist),$nick,44) &lt;br /&gt;    }&lt;br /&gt;    if ($fastjoin == $true) { if (%op) { sockdeoper ChanServ deop $chan $replace($hget($+(war-,$chan),warlist),$chr(44),$chr(32)) | unset %op }&lt;br /&gt;      .timerrejoin 1 0 join $chan&lt;br /&gt;    }&lt;br /&gt;    else { .timerinvite 1 $rand(8,15) ChanServ invite $chan }&lt;br /&gt;    halt&lt;br /&gt;  }&lt;br /&gt;  else { if (%user_prot.on) {  if ($hfind($+(protect,$chan),$ial($knick,1),0,w)) &amp;&amp; ($nick != $me) &amp;&amp; ($me isop $chan) { kick $chan $nick Sorry $knick $+ `s address is on my protection list } | halt } | halt }&lt;br /&gt;}&lt;br /&gt;on *:INVITE:%warchan:{&lt;br /&gt;  if ($nick == ChanServ) {&lt;br /&gt;    if (!$hget($+(war-,%warchan),warlist)) join %warchan&lt;br /&gt;    else { unset %op | .timerrejoinonban 1 3 deop_kicklist %warchan }&lt;br /&gt;  }&lt;br /&gt;  else { halt }&lt;br /&gt;}&lt;br /&gt;alias -l deop_kicklist {&lt;br /&gt;  ChanServ deop $1 $replace($hget($+(war-,$1),warlist),$chr(44),$chr(32))&lt;br /&gt;  join $1&lt;br /&gt;}&lt;br /&gt;raw 353:*:{&lt;br /&gt;  var %nick.list = $remove($5-,@,+), %xchan = $3&lt;br /&gt;  if ($hget($+(war-,%xchan),warlist)) .hdel $+(war-,%xchan) warlist&lt;br /&gt;  var %num.raw = $hget($+(war,%xchan),0).item&lt;br /&gt;  while (%num.raw &gt;= 1) {&lt;br /&gt;    if ($istok(%nick.list,$hget($+(war,%xchan),%num.raw).item,32) == $true) { hadd -m $+(war-,%xchan) warlist $addtok($hget($+(war-,%xchan),warlist),$hget($+(war,%xchan),%num.raw).item,44) }&lt;br /&gt;    if ($numtok($hget($+(war-,%xchan),warlist),44) == 8) { break }&lt;br /&gt;    dec %num.raw &lt;br /&gt;  }&lt;br /&gt;  if ($fastjoin == $false) &amp;&amp; ($hget($+(war-,%xchan),warlist)) &amp;&amp; (!%`dop) { set -u2 %`dop 1 | sockdeoper ChanServ deop %xchan $replace($hget($+(war-,%xchan),warlist),$chr(44),$chr(32)) }&lt;br /&gt;}&lt;br /&gt;on !@*:MODE:#:{ if (%mode.on) &amp;&amp; ( $nick != ChanServ) { var %mode_chan = $replace($1-,-,&amp;) | %mode_chan = $replace(%mode_chan,+,-) | mode $chan $replace(%mode_chan,&amp;,+) } }&lt;br /&gt;RAW 605:*:{ if ($active ischan) &amp;&amp; ($hfind($+(war,$chan),$3)) { hdel $+(war-,$chan) warlist $hfind($+(war,$chan),$3) } } &lt;br /&gt;RAW 471:*:{ %mode_chan = l | %kick_me = 4 | .timerinvite 1 $rand(5,10) ChanServ invite $2 }&lt;br /&gt;RAW 475:*:{ %mode_chan = k | %kick_me = 4 | .timerinvite 1 $rand(5,10) ChanServ invite $2 }&lt;br /&gt;RAW 473:*:{ %mode_chan = i | %kick_me = 4 | .timerinvite 1 $rand(8,15) ChanServ invite $2 }&lt;br /&gt;RAW 474:*:{ %_b = ! | %kick_me = 4 | .raw -q ChanServ unban $2 | .timerinvite 1 $rand(8,15) ChanServ invite $2 }&lt;br /&gt;RAW 477:*:{ %mode_chan = R | %kick_me = 4 | .timerinvite 1 $rand(8,15) ChanServ invite $2 }&lt;br /&gt;RAW 441:*:{ if (%warchan) hadd $+(war-,%warchan) warlist $remtok($hget($+(war-,%warchan),warlist),$2,1,44) | haltdef }&lt;br /&gt;RAW 401:*:{ if (%warchan) hadd $+(war-,%warchan) warlist $remtok($hget($+(war-,%warchan),warlist),$2,1,44) | haltdef }&lt;br /&gt;RAW 600:*:{ echo -a *  Watch:  Services are now on IRC :Online | amsg  ALERT:  DALnet services are now on IRC :Online | halt }&lt;br /&gt;RAW 601:*:{ echo -a *  Watch:  Services leaving IRC :4Offline | halt }&lt;br /&gt;RAW 604:*:{ echo -a *  Watch:  Services are currently :Online | halt }&lt;br /&gt;RAW 605:*:{ echo -a *  Watch:  Services are currently :4Offline | halt }&lt;br /&gt;RAW 332:*:{ if ($2 == %warchan) halt | else { echo $2 * 2,15«16»15,2 TOPIC 2,15«16» $3- | halt } }&lt;br /&gt;RAW 333:*:{ if ($2 == %warchan) halt | else { echo $2 * 2,15«16»15,2 Set by 2,15«16» $3 2On $asctime($4) | halt } }&lt;br /&gt;RAW 482:*:{ halt }&lt;br /&gt;#banlocker off&lt;br /&gt;on @*:UNBAN:#:{&lt;br /&gt;  if ($hfind($+(war,$chan),$banmask,1,w).data) &amp;&amp; ($banmask != *!*@*) { mode $chan +b $banmask }&lt;br /&gt;}&lt;br /&gt;#banlocker end&lt;br /&gt;#banprotect off&lt;br /&gt;on @*:BAN:#:{&lt;br /&gt;  if ($banmask iswm $address($me,5)) { mode $chan -ob+b $nick $banmask $wildsite | kick $chan $nick 5[4&amp;#8226;5S4Þ5i4r5i1&amp;#8224;5~Ban4&amp;#8226;5] &lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;#banprotect end&lt;br /&gt;alias f8 { if (!%socknick) { %socknick = $$?="type DEOPER socket nickname" } | sockopen geneX $$?="type server" $$?="type port" | echo 4 -a Loading %socknick plz wait }&lt;br /&gt;on *:CONNECT:{ .ial on | .auser 20 $me | %war_nick = $me | .watch +ChanServ | .timer 1 1 sockopen geneX $server $port }&lt;br /&gt;on *:disconnect:{ sockclose * | .rlevel 20 | if ($group(#awignore) == on) disable #awignore | unset %away.* | .timerSRELOAD-* off }&lt;br /&gt;on *:SOCKCLOSE:*: {&lt;br /&gt;  echo -a *  SOCKET:  4** Error detected on  $+ $sockname $+ , reloading&lt;br /&gt;  .timerSRELOAD- [ $+ [ $sockname ] ] -o 1 2 .sockopen $sockname $server $port&lt;br /&gt;}&lt;br /&gt;on *:SOCKOPEN:geneX:{&lt;br /&gt;  if ($sockerr &gt; 0) { return }&lt;br /&gt;  window -aneg1 @geneX&lt;br /&gt;  sockwrite -tn $sockname nick %socknick&lt;br /&gt;  sockwrite -tn $sockname USER redx - - :()CYB()ORG()&lt;br /&gt;  sockwrite -tn $sockname join $xchan&lt;br /&gt;  .echo 4 -a %socknick connected ....plz wait&lt;br /&gt;}&lt;br /&gt;on *:sockread:geneX:{&lt;br /&gt;  if ($sockerr &gt; 0) return&lt;br /&gt;  sockread %geneXsock&lt;br /&gt;  if ($sockbr == 0) return&lt;br /&gt;  if ($gettok(%geneXsock,1,32) == PING) { sockwrite -tn $sockname PONG $gettok(%geneXsock,2,32) }&lt;br /&gt;  if ($gettok(%geneXsock,2,32) == 001) {&lt;br /&gt;    echo -a 1*** ( $+ %socknick  $+ socket $+ ) 4Connected | change_socketnick&lt;br /&gt;  }&lt;br /&gt;  if ($remove($gettok(%geneXsock,1,33),:) == Nickserv) &amp;&amp; (This nick is owned by someone else isin %geneXsock) { nick.id }&lt;br /&gt;  if ($gettok(%geneXsock,2,32) == NOTICE) { halt }&lt;br /&gt;  if ($gettok(%geneXsock,2,32) isnum 409) { halt }&lt;br /&gt;  if (%geneXsock == $null) %geneXsock = -&lt;br /&gt;  aline -h @geneX %geneXsock&lt;br /&gt;  unset %geneXsock&lt;br /&gt;}&lt;br /&gt;#awignore off&lt;br /&gt;on *:Open:?=:{&lt;br /&gt;  if ($away == $true) { &lt;br /&gt;    if ($hfind($+(war,$chan),$address($nick,2),1,w).data)  { msg $nick sorry you are being ignored...cause your nick is in my warlist | closemsg $nick }&lt;br /&gt;    elseif ($hmatch($+(protect,$chan),$chat(1).ip)) { msg =$nick Hi! I'll be with you soonest... }&lt;br /&gt;    else { msg $nick 5 I am currently away Reason: ( $+ $awaymsg $+ ) Gone For: ( $+ $duration($awaytime) $+ ) , back in a moment }&lt;br /&gt;    haltdef&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;on *:notice:*:?:{ if ($away == $true) &amp;&amp; ($nick == $me) { halt } { notice $nick 5 I am currently away Reason: ( $+ $awaymsg $+ ) Gone For: ( $+ $duration($awaytime) $+ )  } }&lt;br /&gt;on *:action:*:*:{ if ($away == $true) { if ($me isin $strip($1-)) notice $nick 5 I am currently away Reason: ( $+ $awaymsg $+ ) Gone For: ( $+ $duration($awaytime) $+ )  } | haltdef }&lt;br /&gt;on *:text:*:#:{ if ($away == $true) { if ($me isin $strip($1-)) notice $nick 5 I am currently away Reason: ( $+ $awaymsg $+ ) Gone For: ( $+ $duration($awaytime) $+ )  } | haltdef }&lt;br /&gt;#awignore end&lt;br /&gt;#ctcpflood off&lt;br /&gt;ctcp *:*:*: {&lt;br /&gt;  if (%ctcps == $null) { set -u8 %ctcps 1 | return }&lt;br /&gt;  else { inc %ctcps }&lt;br /&gt;  if (%ctcps &gt; 3) {&lt;br /&gt;    .ignore -u45 $wildsite&lt;br /&gt;    msg $nick Autoignoring you - CTCP Flood detected.&lt;br /&gt;    echo -a Ctcp flood from $wildsite - Ignoring $wildsite for 45 seconds...&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;#ctcpflood end&lt;br /&gt;alias -l kicklist { return $gettok($hget($+(war-,$chan),warlist),1-4,44) }&lt;br /&gt;alias -l sockdeoper { sockwrite -tn geneX $1- }&lt;br /&gt;alias -l mode_ban { if ($me isop $1) { if ($numtok($hget($+(war-,$1),warlist),44) &lt;= 4) { raw -q MODE $1 + [ $+ [ $str(b,$numtok($hget($+(war-,$1),warlist),44)) ] ] $+ -bb $replace($hget($+(war-,$1),warlist),$chr(44),$chr(32)) * $me } | else { raw -q MODE $1 -bb * $me } } }&lt;br /&gt;alias kick: { return $iif(%kick.msg,$red(%kick.msg),$adit.ad) }&lt;br /&gt;alias adit { return °8,1º4,1©15,1 $1- 4,1©8,1º° }&lt;br /&gt;alias set_away { if ($server) { if ($group(#awignore) == on) &amp;&amp; ($away) { amsg I am now back from away, Reason: ( $+ $awaymsg $+ ) Gone For: ( $+ $duration($awaytime) $+ ) | .disable #awignore | away | nick $remove($ulist(*,20,1),-AFK) | .timer 1 5 rlevel 20 | .timer 1 5 auser 20 $me | halt } | else { .enable #awignore  | %away.msg = $?="type away massage" | away $adit(%away.msg) |  amsg I'm away for : ( $+ $awaymsg $+ ) | tnick $+($ulist(*,20,1),-AFK) | halt } } | else echo 2 -a ***Not connected to a server }&lt;br /&gt;alias red { return 2,15«16»2 $1- 2,15«16» }&lt;br /&gt;alias -l change_nick { if ($me isop $chan) { tnick %war_nick $+ $+($chr(91),$rand(1000,9999),$chr(93)) } }&lt;br /&gt;alias -l change_socketnick { if ($?!="Do you want to change the socket's nickname?" == $true) { sockwrite -tn $sockname nick $$?="type new socket nickname" | echo -a *** the socket's new nick is now set to :  $+ $!  } }&lt;br /&gt;alias -l xchan { return $+($chr(35),help-script) }&lt;br /&gt;alias -l set_protection { .enable #banprotect #ctcpflood | .unset %mode.* %user_pro* %banlag.* | %banlag.off = (off) | %mode.on = (on) | %user_prot.on = (on) | .timer 1 1 echo $colour(info) -a ***Protections are now set to 7On }&lt;br /&gt;alias socket_nick { $$?="enter DEOPER socket nickname" | %socknick = $! | echo -a ***your DEOPER socket nickname is now: 0,1 $+(%socknick)  }&lt;br /&gt;alias -l nick.id { .sockwrite -tn $sockname nickserv identify $$?*="Type your DEOPER password ? NickServ request it!" }&lt;br /&gt;alias adit.ad { return 15,1&amp;#8226;Advanced-3,1[9|0B15e14stw15a0R9|3]15-X`edition&amp;#8226; }&lt;br /&gt;alias ad_msg { return 15,1&amp;#8226;Advanced-3,1[9|0B15e14stw15a0R9|3]15-X`edition&amp;#8226;0,15by15,1[|Red-X|]0¤14,1The most advanced survival game/war script.....on DALnet: to get it, find him in #help-script }&lt;br /&gt;alias -l user.name { return &amp;#8226;Advanced-[|BestwaR|]-X`edition&amp;#8226;¤by-[|Red-X|]¤ }&lt;br /&gt;alias -l unset_prot { .disable #banprotect #ctcpflood | .unset %mode.* %user_pro* %banlag.* | %mode.off = (off) | %user_prot.off = (off) | %banlag.off = (off) }&lt;br /&gt;alias -l war_settings { _start | %username = &amp;#8226;Advanced-[|BestwaR|]-X`edition&amp;#8226;¤by-[|Red-X|]¤ | .disable #war #banlocker | .fullname %username | .identd on $+(aditya,$rand(0,100)) | unsetall | %war.status.on = [status:Peace] | %banlag.off = (off) | %onjoin_deop.off = (off) | %op_deop.off = (off) | %nickchanger.off = [off] | %socknick = $+([|BestwaR-X|],$r(10,99)) | unset_prot }&lt;br /&gt;alias f2 { ctcp $me ping | ctcp chanserv@services.dal.net ping }&lt;br /&gt;alias -l reset_war_ban { &lt;br /&gt;  if ($me !isop $chan) return&lt;br /&gt;  var %i = $ibl($chan,0) &lt;br /&gt;  while (%i &gt; 0) {&lt;br /&gt;    if ($ibl($chan,%i) iswm $address($me,5)) var %iban_list = $addtok(%iban_list,$ibl($chan,%i),32)&lt;br /&gt;    dec %i&lt;br /&gt;  }&lt;br /&gt;  mode $chan - [ $+ [ $str(b,$numtok(%iban_list,32)) ] ] %iban_list&lt;br /&gt;}&lt;br /&gt;alias kick {&lt;br /&gt;  kick $1 $2 $3- &lt;br /&gt;}&lt;br /&gt;on 1:start:{ echo $colour(info) -a Welcome to 15,1&amp;#8226;Advanced-3,1[9|0B15e14stw15a0R9|3]15-X`edition&amp;#8226; | war_settings | .fullname $user.name }&lt;br /&gt;on 1:load:{&lt;br /&gt;  if ($version &gt;= 6.02) { echo -a You have installed $adit.ad ,an advanced war/revenge script }&lt;br /&gt;  else { echo -a *** $adit.ad was made for mIRC 6.02 or greater. Please upgrade | .unload -rs $script }&lt;br /&gt;}&lt;br /&gt;alias -l _start {&lt;br /&gt;  echo $colour(info) -a Author: [|Red-X|]  &lt;br /&gt;  echo 7 -a -----------------------------------------------------&lt;br /&gt;  echo 7 -a - Introduction&lt;br /&gt;  echo $colour(info) -a - 1) &amp;#8226;Advanced Code and compatible with miRC v6.02+, run on DALnet&lt;br /&gt;  echo $colour(info) -a - 2) &amp;#8226;Clearer and easier to see options menu :&lt;br /&gt;  echo $colour(info) -a - 3) &amp;#8226;Socket connection is available for deoping enemies&lt;br /&gt;  echo $colour(info) -a - 4) &amp;#8226;War-mode or Peace-mode,Ban protection,Banlocker&lt;br /&gt;  echo $colour(info) -a - 5) &amp;#8226;Channel mode protection,User protection,ctcp flood protection&lt;br /&gt;  echo $colour(info) -a - 6) &amp;#8226;Auto unban system, and away system&lt;br /&gt;  echo $colour(info) -a - 7) &amp;#8226;Fully Hashtable data management for optimal performance.&lt;br /&gt;  echo $colour(info) -a - 8) &amp;#8226;Bug fixed, and Integrated script (All options are in one script file)&lt;br /&gt;  echo $colour(info) -a - 9) &amp;#8226;Copyright © 2002 [|BestwaR|] Techonology Inc.&lt;br /&gt;  echo 7 -a -----------------------------------------------------&lt;br /&gt;  echo $colour(info) -a - Notes :1) &amp;#8226;Set protection options to 7On, only when you are in 7Peace Mode or while you are acting as channel operator.&lt;br /&gt;  echo $colour(info) -a - 2) &amp;#8226;Socket (default nick:cyborg) will automatically be connected to a same server where client connecting, or press F8 to load it manually.&lt;br /&gt;  echo $colour(info) -a Have....fun! Need help? just drop ur mail to net_ryan@yahoo.com or join #indohelpdesk or #help-script (dalnet)&lt;br /&gt;}&lt;br /&gt;;------------EoS--&lt;br /&gt;;=menu&lt;br /&gt;menu channel,menubar {&lt;br /&gt;  $iif($active ischan,&amp;IAL state for #)&lt;br /&gt;  .$iif($chan(#).ial == $true,All addresses OK):echo No need to update IAL for chan #&lt;br /&gt;  .$iif($chan(#).ial == $false,IAL Incomplete. Update?):.who #&lt;br /&gt;  &amp;Main Settings&lt;br /&gt;  .$iif(%war.status.on,[ %war.status.on ],[ %war.status.off ] ):{ if (%war.status.on) { unset %war.status.on | set %war.status.off [status:Revenge] | .enable #war | unset_prot | echo $colour(info) -a ***The script is now set to 7Revenge Mode | if ($active != status window) say Activate 7Revenge Mode } | else { set %war.status.on [status:Peace] | unset %war.status.off | .disable #war | set_protection | echo $colour(info) -a ***The Script is now set to 7Peace Mode | if ($active != status window) say Activate 7Peace Mode } }&lt;br /&gt;  .&amp;Clear Enemy-list:{ if ($active ischan) { .hdel -w $+(war,$chan) * | .hdel -w $+(war-,$chan) warlist | msg $active 1Clear } | echo $colour(info) -a ***Removing all users from the enemy list :7done... }&lt;br /&gt;  .&amp;onJoin Settings  &lt;br /&gt;  ..&amp;onJoin-ban $+ $chr(32) $+ $iif(%banlag.on,[ %banlag.on ],[ %banlag.off ] ):{ if (%banlag.on) { unset %banlag.on | set %banlag.off (off) | echo $colour(info) -a ***on-Join ban Off } | else { set %banlag.on (on) | unset %banlag.off | echo $colour(info) -a ***on-Join ban On } }&lt;br /&gt;  ..&amp;onJoin-deop $+ $chr(32) $+ $iif(%onjoin_deop.on,[ %onjoin_deop.on ],[ %onjoin_deop.off ] ):{ if (%onjoin_deop.on) { unset %onjoin_deop.on | set %onjoin_deop.off (off) | echo $colour(info) -a ***on-Join deop Off } | else { set %onjoin_deop.on (on) | unset %onjoin_deop.off | echo $colour(info) -a ***on-Join deop On:7Will deop opponents which joined a channel,when you are not on op position } }&lt;br /&gt;  .&amp;onOp-deop $+ $chr(32) $+ $iif(%op_deop.on,[ %op_deop.on ],[ %op_deop.off ] ):{ if (%op_deop.on) { unset %op_deop.on | set %op_deop.off (off) | echo $colour(info) -a ***on-Op deop Off } | else { set %op_deop.on (on) | unset %op_deop.off | echo $colour(info) -a ***on-Op deop On:7Will deop opponents which are being opped,when you are not on op position } }&lt;br /&gt;  .&amp;Ban-Locker ( $+ $group(#banlocker) $+ ) : { if ($group(#banlocker) == on) { .disable #banlocker | echo $colour(info) -a ***Banlocker is now Off | halt } | else { .enable #banlocker | echo $colour(info) -a ***Banlocker is now On | halt } }&lt;br /&gt;  .&amp;Nickchanger $iif(%nickchanger.on,[ %nickchanger.on ],[ %nickchanger.off ] ):{ if (%nickchanger.on) { unset %nickchanger.on | set %nickchanger.off [off] | echo $colour(info) -a ***nickchanger Off } | else { set %nickchanger.on [on] | unset %nickchanger.off | echo $colour(info) -a ***nickchanger On  } }&lt;br /&gt;  .-&lt;br /&gt;  &amp;DEOPER socket&lt;br /&gt;  .$iif($sock(geneX).status,&amp;Connected,not &amp;Connected) &lt;br /&gt;  ..$iif(!$sock(geneX).status,&amp;Load): { if (!$window(@geneX)) { window -aneg1 @geneX } | %socknick = $$?="Type socket deoper's nick" | sockopen geneX $$?="type server i.e kernel-c.dal.net" $$?="type port i.e 7000" }&lt;br /&gt;  -&lt;br /&gt;  &amp;Reset Ban&amp;&amp;Enemy list { if ($active ischan) { .hdel -w $+(war-,$chan) warlist | reset_war_ban } | echo $colour(info) -a ***Reseting my ban &amp; enemy list 7done...:Do it while in a channel } &lt;br /&gt;  -&lt;br /&gt;  &amp;Protections&lt;br /&gt;  .&amp;Ban Protection ( $+ $group(#banprotect) $+ ) : { if ($group(#banprotect) == on) { .disable #banprotect | echo $colour(info) -a ***Ban Protection is now Off | halt } | else { .enable #banprotect | echo $colour(info) -a ***Ban Protection is now On | halt } }&lt;br /&gt;  .&amp;Chan. Mode Potect. $+ $chr(32) $+ $iif(%mode.on,[ %mode.on ],[ %mode.off ] ):{ if (%mode.on) { unset %mode.on | set %mode.off (off) | echo $colour(info) -a ***Channel Mode protection-Off  } | else { set %mode.on (on) | unset %mode.off |  echo $colour(info) -a ***Channel Mode protection-On } }&lt;br /&gt;  .&amp;User Protection $+ $chr(32) $+ $iif(%user_prot.on,[ %user_prot.on ],[ %user_prot.off ] ):{ if (%user_prot.on) { unset %user_prot.on | set %user_prot.off (off) | echo $colour(info) -a ***User protection-Off   } | else { set %user_prot.on (on) | unset %user_prot.off | echo $colour(info) -a ***User protection-On  } }&lt;br /&gt;  .&amp;CTCP Flood Prot. ( $+ $group(#ctcpflood) $+ ) : { if ($group(#ctcpflood) == on) { .disable #ctcpflood | echo $colour(info) -a ***CTCP flood Protection is now Off | halt } | else { .enable #ctcpflood | echo $colour(info) -a ***CTCP flood Protection is now On | halt } }&lt;br /&gt;  - &lt;br /&gt;  Set kick massage:{ set %kick.msg $?="Type kick massage:" | echo $colour(info) -a ***Your kick massage is : $red(%kick.msg) }&lt;br /&gt;  -&lt;br /&gt;  &amp;Set Away ( $+ $group(#awignore) $+ ) : { set_away }&lt;br /&gt;  -&lt;br /&gt;  &amp;Advertise { if ($active != status window) say I'm activating $ad_msg | else echo -s $adit.ad }&lt;br /&gt;  -&lt;br /&gt;  ¤AbOuT¤&lt;br /&gt;  .[|BestwaR|] { .url http://www.brain-crash.com }&lt;br /&gt;  .&amp;mail [|Red-X|] { .run mailto:net_ryan@yahoo.com }&lt;br /&gt;}&lt;br /&gt;menu nicklist {&lt;br /&gt;  Protection list&lt;br /&gt;  .Add:{ if ($$1) { .hadd -m $+(protect,$chan) $address($$1,2) $$1 | .msg $$1 you are now under myprotection } }&lt;br /&gt;  .Del:{ if ($$1) { .hdel -w $+(protect,$chan) $address($$1,2) * | echo -a $$1 has been removed from protection list  } }&lt;br /&gt;  WaR list&lt;br /&gt;  .Add:{ if ($active ischan) hadd -m $+(war,$chan) $$1 $address($1,5) | echo -a $$1 has been added to warlist }&lt;br /&gt;  .Del:{ if ($active ischan) hdel -sw $+(war,$chan) $$1 * | .msg $$1 your address has been removed from warlist }&lt;br /&gt;}&lt;br /&gt;menu query {&lt;br /&gt;  WaR list&lt;br /&gt;  .Add:{ var %chan = $$?="Type channel this nick to be warlisted" | hadd -m $+(war,%chan) $$1 $address($1,5) | echo -a $$1 has been added to warlist }&lt;br /&gt;  .Del:{ var %chan = $$?="Type channel this nick to be remove fr. warlist" | hdel -sw $+(war,%chan) $$1 * | say you have been removed from warlist }&lt;br /&gt;  Block &amp;User-massages: {&lt;br /&gt;    var %stopmsg.msg = $$?="Enter Massage"&lt;br /&gt;    ignore -pn $active | ignore -u60 $active | say $+ , %stopmsg.msg&lt;br /&gt;  }&lt;br /&gt;  Allow User to MSG you: { ignore -rp $active | say Now accepting messages from you. :) } &lt;br /&gt;}&lt;br /&gt;menu @geneX { &lt;br /&gt;  clear screen:clear&lt;br /&gt;  close window:window -c @geneX&lt;br /&gt;  disconnect { sockclose geneX | .timerSRELOAD-* off | echo $colour(info) -a *** %socknick has left iRC }&lt;br /&gt;  -&lt;br /&gt;  connect socket : { window -aneg1 @geneX | sockopen geneX $$?="type server" 7000 }&lt;br /&gt;  change nick:{ %socknick = $$?="type new nick" | sockdeoper nick %socknick }&lt;br /&gt;  join:{ sockdeoper join #$$?="Type channnel (type it w/o #)" }&lt;br /&gt;  part:{ sockdeoper part #$$?="type channel (type it w/o #)" }&lt;br /&gt;  priv. msg:{ sockdeoper privmsg $$?="type nickname or #channel" : $+ $$?="type your massage" }&lt;br /&gt;}&lt;br /&gt;;-----------end of script-------------------;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-8347398592691707038?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/8347398592691707038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=8347398592691707038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/8347398592691707038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/8347398592691707038'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/04/generation-x-script-war.html' title='Generation-x script war'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-1911862059667455618</id><published>2008-03-21T23:18:00.000-07:00</published><updated>2008-04-01T10:04:00.274-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>3. Beyond the Basics</title><content type='html'>3. Beyond the Basics&lt;br /&gt;Most novices can enjoy IRC quiet well with the basic IRC skills described in part 1 and the ability to chat publicly and privately discussed in part 2. This section will now cover the basics of channel maintenance. After you have mastered this material, you may learn more about running channels from the exhaustive New IRC Channel Operator's Guide.&lt;br /&gt;3.1. Channel Operators&lt;br /&gt;&lt;br /&gt;Channel operators or "ops" have absolute power over their channel, including the right to decide who gets to come in, who must leave, who may talk, etc. When you first start out, it's best to chat on other people's channels and heed their rules, or else you may find yourself kicked out. If that happens and you cannot settle your differences with the ops, just go to another channel.&lt;br /&gt;&lt;br /&gt;At some point you will probably want to try your hand at being a channel op, either by creating your own new channel or by gaining the trust of the ops on an existing channel. You need to know a whole different set of commands. With this power comes the sometimes frustrating responsibility of maintaining the channel against intentional abuse as well as the usual IRC mishaps.&lt;br /&gt;&lt;br /&gt;Some networks such as Undernet and DALnet support channel registration, whereby you can "reserve" a channel. The advantage is that you are assured control over the channel as long as you show up once in a while, the disadvantage is that many popular channel names are probably already registered by others.&lt;br /&gt;&lt;br /&gt;Two of the largest nets EFnet and IRCnet do not support channel registration (or any other services). On these nets, there is no way to ensure you will always control a channel. Some channels try hard with all sorts of bots (which are explicitly banned by most servers) and protective scripts, but it's really just a matter of time before somebody with the right combination of lameness and knowledge comes along and takes over the channel.&lt;br /&gt;[ contents | 1 | 2 | 3 | bottom ]&lt;br /&gt;&lt;br /&gt;3.2 Channel Maintenance&lt;br /&gt;&lt;br /&gt;This section will cover the basic commands used by channel ops to maintain a channel. Try them on a test channel!&lt;br /&gt;&lt;br /&gt;Two of the most common things that ops do are setting the channel topic and kicking out abusive people. For the purposes of this section, let's say you have ops on the channel #demo.&lt;br /&gt;&lt;br /&gt;/TOPIC #channelname whatever topic for channel&lt;br /&gt;&lt;br /&gt;    Channels have topics which indicate the current topic of conversation. Theoretically anybody can change the topic on a channel with the /TOPIC command, but usually the channel operators make it so that only they can change the topic. This topic is shown when anybody first joins the channel, and it is also shown constantly at the bottom of the window for graphical clients like mIRC and Ircle.&lt;br /&gt;&lt;br /&gt;    /TOPIC #demo hello, testing&lt;br /&gt;    *** YourNick has changed the topic on #demo to hello, testing &lt;br /&gt;&lt;br /&gt;/KICK nickname [optional reason]&lt;br /&gt;&lt;br /&gt;    Forcibly kick that nickname out of the current channel with the reason specified. If no reason is given, it will just use your nickname as the default reason.&lt;br /&gt;&lt;br /&gt;    /KICK buddy go away, you're annoying me&lt;br /&gt;    *** buddy has been kicked off #demo by YourNick (go away, you're annoying me) &lt;br /&gt;&lt;br /&gt;Channel Modes&lt;br /&gt;&lt;br /&gt;In addition to the above commands, the behavior on each channel is governed by many "modes", each denoted by a single character such as "x" which can be turned on or off using "+x" and "-x" respectively. You can see the modes currently in effect on a channel by issuing the /MODE command without any flags. For example:&lt;br /&gt;&lt;br /&gt;/mode #demo&lt;br /&gt;*** Mode for channel #demo is "+tn"&lt;br /&gt;&lt;br /&gt;What does the "+tn" mean? Those and other modes are described below.&lt;br /&gt;&lt;br /&gt;Public&lt;br /&gt;    This is the default channel mode. Public means that everyone can see the channel in the /NAMES and /LIST lists. These channels usually welcome newcomers. &lt;br /&gt;&lt;br /&gt;Private (p) or Secret (s)&lt;br /&gt;    The "+p" or "+s" will be explained later, for now consider them to be flags denoting the nature of the channel. These channels provide privacy and security for insiders and may or may not welcome newcomers. If you don't know the names of these exclusive channels already, you won't find them using /LIST. Even if you know the channel name, you still cannot use /WHO #channelname to see who is presently in there unless you join the channel yourself. Note: private and secret are not the same thing, but the difference is pretty arcane.&lt;br /&gt;&lt;br /&gt;    To make #demo a secret channel:&lt;br /&gt;    /MODE #demo +s&lt;br /&gt;    *** Mode change "+s" on channel #demo by YourNick&lt;br /&gt;&lt;br /&gt;    To make #demo a public channel again (removing the secret mode):&lt;br /&gt;    /MODE #demo -s&lt;br /&gt;    *** Mode change "-s" on channel #demo by YourNick&lt;br /&gt;&lt;br /&gt;    In the following examples I'll leave out the responses in blue since they are all similar to the above. &lt;br /&gt;&lt;br /&gt;No external messages to the channel (n)&lt;br /&gt;    People outside the channel cannot do /MSG #channel_name [whatever] which would otherwise be sent to everybody on the channel &lt;br /&gt;&lt;br /&gt;Topic control (t)&lt;br /&gt;    Only channel ops are allowed to change the topic &lt;br /&gt;&lt;br /&gt;Channel ops (o [nickname])&lt;br /&gt;    Any op can give ops to anybody else, and once that other person gains ops, he has the same power as you do, including the ability to remove your ops or "deop" you, or even to kick you out. This is known as a takeover. Don't share ops with others unless you trust them fully!&lt;br /&gt;    /MODE #demo +o buddy&lt;br /&gt;&lt;br /&gt;    You can also do a few of these together on the same line, such as:&lt;br /&gt;    /MODE #demo +ooo larry curley moe&lt;br /&gt;&lt;br /&gt;Moderated (m)&lt;br /&gt;    On a moderated channel, only channel operators can talk publicly, others can only listen and will get "cannot send to channel" errors if they try to talk. The exception is if you are given a voice (+v). Moderated mode is useful for conferencing or keeping control over very busy channels. &lt;br /&gt;&lt;br /&gt;Invite Only (i)&lt;br /&gt;    People can only join your channel if an op permits it. To set it:&lt;br /&gt;    /MODE #demo +i&lt;br /&gt;&lt;br /&gt;    Then to let buddy in, use the /INVITE command:&lt;br /&gt;    /INVITE buddy #demo &lt;br /&gt;&lt;br /&gt;Limited (l [number])&lt;br /&gt;    Only that number of people are allowed to /JOIN the channel.&lt;br /&gt;    /MODE #demo +l 20&lt;br /&gt;&lt;br /&gt;    Later to remove the limit (note you don't need to specify the number):&lt;br /&gt;    /MODE #demo -l. &lt;br /&gt;&lt;br /&gt;Keyword or Password Protected (k keyword)&lt;br /&gt;    You must know the keyword to /JOIN the channel. To set the keyword as "trustno1":&lt;br /&gt;    /MODE #demo +k trustno1&lt;br /&gt;&lt;br /&gt;    Then in order for somebody outside to join, they must type:&lt;br /&gt;    /JOIN #demo trustno1&lt;br /&gt;&lt;br /&gt;    And to remove the keyword:&lt;br /&gt;    /MODE #demo -k trustno1 &lt;br /&gt;&lt;br /&gt;Channel bans (b [nick!user@host])&lt;br /&gt;    I've saved this for last becuase it's the most complicated. After a kick, the offender can still rejoin the channel immediately unless you first set a ban to keep them out (remember to ban then kick, not the other way around). You need to specify a ban "mask" that matches the offender's nickname, username, and hostname (if you are not crystal clear on the distinction between those three, revisit the /WHOIS command in part 1 now or else what follows will only confuse you more). You also need to use wildcards like the "*" character to replace any part the offender can easily change.&lt;br /&gt;&lt;br /&gt;    For example, if you want to ban buddy, and his /WHOIS says:&lt;br /&gt;    *** buddy is abcd@dialup-6.provider.com (Think different.)&lt;br /&gt;    Then the most specific ban mask would be "buddy!abcd@dialup-6.provider.com" (note the use of "!" and "@" to separate the nickname, username, and hostname). If he changes any of those three, however, he can slip right back in! For example, he could change his nickname "buddy" using /NICK. If he's using a graphical client like mIRC he can change his username "abcd" after a quick /QUIT and reconnect. He can even change the first part of his hostname ("dialup-6") by dialing up to his provider again. That's why it might make more sense to do:&lt;br /&gt;    /MODE #demo +b *!*abcd@dialup*.provider.com&lt;br /&gt;    Or even a domain ban against everybody from that provider (use sparingly since you may keep out a lot of innocent people):&lt;br /&gt;    /MODE #demo +b *!*@*.provider.com&lt;br /&gt;&lt;br /&gt;    You may view the current bans (from on or off the channel) by leaving off the ban mask. In the example below, there are 2 bans on #demo, the first an old ban restored by the server irc.mcs.net when it rejoined after a split, the second ban was set by buddy against anybody from the blah.net domain whose username contains "foo":&lt;br /&gt;&lt;br /&gt;    /MODE #demo +b&lt;br /&gt;    Current bans on #demo are:&lt;br /&gt;    *** #demo *!*@*.dummy.com irc.mcs.net 903321784&lt;br /&gt;    *** #demo *!*foo*@*.blah.net buddy!abcd@dialup-6.provider.com 903310028&lt;br /&gt;&lt;br /&gt;    If you want to remove the first ban, you have to use the exact same ban mask, namely:&lt;br /&gt;    /MODE #demo -b *!*@*.dummy.com &lt;br /&gt;&lt;br /&gt;Most of the above modes can be combined. For example, to remove the invite-only restriction, while at the same making the channel with topic changed only by ops, not allowing external messages, and password protected with "trustno1" as the key:&lt;br /&gt;/MODE #demo -i+tnk trustno1&lt;br /&gt;[ contents | 1 | 2 | 3 | bottom ]&lt;br /&gt;3.3. Server Commands&lt;br /&gt;&lt;br /&gt;This section describes how to get more information about the IRC servers you use. Each server is run by IRC operators or IRCops, who are sometimes mistakenly known as "IRC cops". These people run each IRC server and try to maintain a fast, reliable IRC network. They are not cops and do not interfere in user or channel matters such as restoring ops, fighting takeovers, defeating bans, nickname disputes, etc. For more information on what IRCops do, see the IRC Operator Guide which is like a training manual for IRCops, or Monkster's short Oper Myths which definitively lists what IRCops can/can't/will/won't do. If after reading those you still think you need to contact an IRCop to report IRC abuse, see our IRC logging guide for directions.&lt;br /&gt;&lt;br /&gt;A special word on nukes: denial of service attacks, commonly known as "nukes", are not part of IRC at all. As such, IRCops have no authority in trying to stop them. See our guide on logging and reporting nukes.&lt;br /&gt;&lt;br /&gt;Unless otherwise stated, all commands below apply to your current server unless you specify another server's hostname as the optional argument.&lt;br /&gt;&lt;br /&gt;/LINKS&lt;br /&gt;&lt;br /&gt;    The LINKS command shows all the servers currently connected to form the IRC network you are using. If a server mask is specifed, LINKS shows any servers that match the given server mask, which may contain wildcards.&lt;br /&gt;&lt;br /&gt;    /LINKS *.com&lt;br /&gt;    *** irc.rift.com      irc.total.net        3 [205.150.226.4] Rift Online&lt;br /&gt;    *** irc02.irc.aol.com irc.lightning.net  6 America Online EFNet Server&lt;br /&gt;    [list truncated]&lt;br /&gt;&lt;br /&gt;    The 1st column is the server name, the 2nd is the server it is linked to, the number in the 3rd column is the number of links away that server is from yours. Caution: don't do /links too many times or you could be mistaken for a troublemaker and sanctioned. &lt;br /&gt;&lt;br /&gt;/ADMIN&lt;br /&gt;&lt;br /&gt;    Displays the administrative details about a server. Usually this will give you an e-mail address you can use to ask questions or report complaints such as illegal bots (just don't hold your breath, most IRC ops are very busy people, and see description of IRC op at the beginning of this section so you don't bother them with takeovers and ops problems).&lt;br /&gt;&lt;br /&gt;    /ADMIN&lt;br /&gt;    *** Administrative info about irc.psinet.com&lt;br /&gt;    *** PSI Net EFNet IRC Server&lt;br /&gt;    *** Admin - Katherine Spray&lt;sprayk@interramp.com&gt;&lt;br /&gt;    *** moonwolf @ IRC&lt;br /&gt;&lt;br /&gt;/MOTD&lt;br /&gt;&lt;br /&gt;    Gives the "message of the day" for a server which explains the server's policies and other information. You should always read this before using any server.&lt;br /&gt;&lt;br /&gt;    /MOTD irc.ais.net&lt;br /&gt;    [excerpted MOTD follows]&lt;br /&gt;    *** -  The Rules for IRC.AIS.NET:&lt;br /&gt;    *** -  o No Clones/Multiple clients&lt;br /&gt;    *** -  o No link looking scripts&lt;br /&gt;    *** -  o Clients must respond to valid ctcp requests&lt;br /&gt;    *** -&lt;br /&gt;    *** -  Failure to comply with any of the above rules may result in your&lt;br /&gt;    *** -  connection to this server being blocked.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-1911862059667455618?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/1911862059667455618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=1911862059667455618' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/1911862059667455618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/1911862059667455618'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/3-beyond-basics.html' title='3. Beyond the Basics'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-3232532977095296131</id><published>2008-03-21T23:17:00.000-07:00</published><updated>2008-04-01T10:04:00.274-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>2. Chatting on IRC</title><content type='html'>2. Chatting on IRC&lt;br /&gt;&lt;br /&gt;The point of IRC is to chat, and as mentioned before, you may join in public discussions on channels or talk privately to one person at a time. We will show you how to do both here.&lt;br /&gt;&lt;br /&gt;2.1. Public Conversations&lt;br /&gt;&lt;br /&gt;We previously learned how to find channels using the /list command. Here will talk about how to join those channels and talk on them.&lt;br /&gt;&lt;br /&gt;There can be many thousands of channels on the largest networks, each with anywhere from one to hundreds of people. Each channel is controlled by channel operators or "ops" who have absolute authority over their channels. We will discuss more about that later. You should always observe basic netiquette when visiting other people's channels.&lt;br /&gt;&lt;br /&gt;/JOIN #channelname&lt;br /&gt;&lt;br /&gt;    Changes your current channel to the channel specified. If the channel does not exist already, it will be created and you will be in charge of the new channel and be a channel operator or "op" - more on that later.&lt;br /&gt;&lt;br /&gt;    /JOIN #new2irc&lt;br /&gt;    *** YourNick (foo@hot.school.edu) has joined channel #new2irc&lt;br /&gt;    *** Topic for #new2irc: New users welcome! Questions answered with a smile! ;)) RC&lt;br /&gt;    *** Topic for #new2irc set by Otiose on Sun Aug 16 10:28:06 1998&lt;br /&gt;    *** Users on #new2irc: YourNick FunGuy @pixE @MsingLnk @^Chipster&lt;br /&gt;        [rest of list truncated]&lt;br /&gt;&lt;br /&gt;    When you join a channel, everything that everybody says is preceded by their nicknames so others can tell who is saying what. For some IRC programs, it doesn't show your own nickname, but don't worry, other people still see it!&lt;br /&gt;&lt;br /&gt;    You type:&lt;br /&gt;    hello world!&lt;br /&gt;    but everybody else sees:&lt;br /&gt;    &lt;YourNick&gt; hello world! &lt;br /&gt;&lt;br /&gt;/ME does something&lt;br /&gt;&lt;br /&gt;    Performs an action on a channel. Unlike talking normally, actions do not start with &lt;YourNick&gt;. Use /ME in the third person (verbs like "is", "does", "runs", etc.).&lt;br /&gt;&lt;br /&gt;    /ME is a pink bunny&lt;br /&gt;&lt;br /&gt;    YourNick is a pink bunny&lt;br /&gt;&lt;br /&gt;/LEAVE [#channel_name]&lt;br /&gt;&lt;br /&gt;    Leaves the specified channel, or if no channel is specified, leaves the current channel. &lt;br /&gt;&lt;br /&gt;[ contents | 1 | 2 | 3 | bottom ]&lt;br /&gt;&lt;br /&gt;2.2. Private Conversations&lt;br /&gt;&lt;br /&gt;/MSG nickname message&lt;br /&gt;&lt;br /&gt;    Use the /MSG command to send someone a message that only that person can read. Say you are "YourNick" and you want to talk to your friend "buddy".&lt;br /&gt;    /MSG buddy hello, how are you?&lt;br /&gt;&lt;br /&gt;    On your screen, you would see:&lt;br /&gt;    -&gt; *buddy* Hello, how are you?&lt;br /&gt;&lt;br /&gt;    On buddy's screen, if he is using ircII he sees:&lt;br /&gt;    *YourNick* Hello, how are you?&lt;br /&gt;&lt;br /&gt;    To answer such a message using ircII, buddy would type:&lt;br /&gt;    /MSG YourNick Fine, thanks!&lt;br /&gt;&lt;br /&gt;    If buddy is using mIRC, he will instead get a new "query" window dedicated to this private conversation with you. Everything you /MSG him goes to that window. As soon as he responds to you in that window, if you are also using mIRC you will likewise also get a "query" window. &lt;br /&gt;&lt;br /&gt;/QUERY nickname and /QUERY&lt;br /&gt;&lt;br /&gt;    In mIRC, if you initiate a /MSG you don't get a "query" window until the other person responds to you. You can set up a "query" window on your side right from the beginning by using the /QUERY command:&lt;br /&gt;    /QUERY buddy&lt;br /&gt;&lt;br /&gt;    In ircII, you can have a private conversation by using /MSG nickname repeatedly, but that can get cumbersome. That's where the QUERY command comes in handy. When you issue the above command, all subsequent text will be send as private messages to that nickname, except for "/irchelp/" commands. Use /QUERY with no nickname to end a private conversation.&lt;br /&gt;&lt;br /&gt;    Here's an example of a private conversation between you as "YourNick" and your friend "buddy", as seen from your point of view. Statements from your IRC client program start with "***", outgoing messages from you to buddy start with "-&gt; *buddy*", and incoming messages to you from buddy start with "*buddy*".&lt;br /&gt;&lt;br /&gt;    /QUERY buddy&lt;br /&gt;    *** Starting conversation with buddy&lt;br /&gt;    Good morning&lt;br /&gt;    -&gt; *buddy* Good morning, buddy.&lt;br /&gt;    *buddy* Hi, YourNick. How is life ?&lt;br /&gt;    Pretty good. I have to get back to work, bye.&lt;br /&gt;    -&gt; *buddy* Pretty good. I have to get back to work, bye.&lt;br /&gt;    *buddy* OK, talk to you later.&lt;br /&gt;    /QUERY&lt;br /&gt;    *** Ending conversation with buddy&lt;br /&gt;&lt;br /&gt;/CTCP nickname PING&lt;br /&gt;/CTCP #channel-name PING&lt;br /&gt;&lt;br /&gt;    Sometimes you are talking to your friend and suddenly it seems like he's not paying attention. This may be due to server "lag" on either end, which is the roundtrip delay between when you say something and your friend sees that message. Normally lag is less than a few seconds even when you are talking to people on the other side of the planet, but sometimes the servers temporarily suffer from serious lag. If you suspect this is the problem, you can test your lag with a sonar-like ping signal under the Client-to-Client Protocol (CTCP). If you are just talking to one person, ping that person. If you suspect you are generally lagged to a lot of people, ping a channel with say 10 people which is the same as pinging each person on that channel separately. The range in ping response times will tell you if you are lagged in general.&lt;br /&gt;&lt;br /&gt;    /CTCP buddy PING&lt;br /&gt;    *** CTCP PING from YourNick!foo@hot.school.edu to buddy: 903330542&lt;br /&gt;    *** CTCP PING reply from buddy: 1 second&lt;br /&gt;&lt;br /&gt;    The last line is the part you care about. It says you are lagged less than 1 second to buddy, which is very good. Note that in most clients including most versions of ircII and mIRC, this is aliased to /PING nickname, or /PING #channel-name, but not always. Some Mac clients such as Ircle use /CPING instead. &lt;br /&gt;&lt;br /&gt;DCC CHAT&lt;br /&gt;&lt;br /&gt;    /DCC CHAT nickname&lt;br /&gt;    /MSG =nickname message&lt;br /&gt;    /DCC CLOSE CHAT nickname&lt;br /&gt;&lt;br /&gt;    DCC stands for Direct Client Communication, where you and your friend's client programs connect directly to each other, bypassing IRC servers and their occasional "lag" or "split" problems. Like /MSG, the DCC chat is completely private.&lt;br /&gt;&lt;br /&gt;    If you are "Yournick" and your friend is "buddy", here's how to use DCC chat:&lt;br /&gt;&lt;br /&gt;    You type:&lt;br /&gt;    /DCC CHAT buddy&lt;br /&gt;&lt;br /&gt;    You see:&lt;br /&gt;    *** Sent DCC CHAT request to buddy&lt;br /&gt;    While buddy sees:&lt;br /&gt;    *** DCC CHAT (chat) request received from YourNick&lt;br /&gt;&lt;br /&gt;    Now buddy types the same thing but using your nick:&lt;br /&gt;    /DCC CHAT YourNick&lt;br /&gt;&lt;br /&gt;    The connection goes through and you see this (he sees something similar). The numbers are his IP number (the numeric version of his computer's hostname) and his port number.&lt;br /&gt;    *** DCC CHAT connection with buddy[123.4.56.78,54321] established&lt;br /&gt;&lt;br /&gt;    Now to talk to buddy, in graphical clients like mIRC you will probably have a separate window for the DCC chat so that everything you type is sent to buddy. Just type normally in that window. Alternatively, from any window you may use a /MSG with an equals sign immediately before his nick, which distinguishes this DCC CHAT message from a regular /MSG buddy whatever:&lt;br /&gt;    /MSG =buddy now we're talking!&lt;br /&gt;&lt;br /&gt;    When you're done talking, either close the graphical window (if there is one available) or manually close the connection:&lt;br /&gt;    /DCC CLOSE CHAT buddy&lt;br /&gt;    *** DCC chat:&lt;any&gt; to buddy closed&lt;br /&gt;&lt;br /&gt;[ contents | 1 | 2 | 3 | bottom ]&lt;br /&gt;2.3. File Transfer&lt;br /&gt;In addition to talking, IRC has also become a popular and convenient way to exchange a wide variety of files. Be forewarned, however, that many people are getting into serious trouble by downloading files that seem interesting or enticing, only to find out they are trojan horse attacks. These hacks allow strangers to take over your channels, force you to disconnect, erase your hard disk, or worse. The moral is clear: Never accept candy from strangers. For more information, see our Downloading Files from IRC guide.&lt;br /&gt;&lt;br /&gt;DCC SEND and GET&lt;br /&gt;&lt;br /&gt;    Like with DCC chat described above, DCC file transfer requires an exchange of commands between the sender and getter of each file. For example, if you as "YourNick" want to send the file "foo.jpg" to your friend "buddy", you would type:&lt;br /&gt;    /DCC SEND buddy foo.jpg&lt;br /&gt;    *** Sent DCC SEND request to buddy&lt;br /&gt;&lt;br /&gt;    If you specify the filename without a directory path, it will assume the file is in the default directory. For mIRC that is usually c:\mirc and for ircII it is usually your home directory. If the file is somewhere else, you will need to specify the path to that file, such as:&lt;br /&gt;    /DCC SEND buddy c:\other\directory\foo.jpg&lt;br /&gt;&lt;br /&gt;    Now for buddy to get the offered file. If he is using mIRC, a dialog will open asking him whether he wishes to accept the file, cancel the offer, or even ignore the offerer. In ircII, buddy will see the following request and types this in response:&lt;br /&gt;    *** DCC SEND (foo.jpg 180) request received from YourNick&lt;br /&gt;    /DCC GET YourNick&lt;br /&gt;&lt;br /&gt;    You will then see the following as the DCC connection is established and the transfer eventually completed. On the other end, buddy sees something similar too.&lt;br /&gt;    *** DCC SEND connection to buddy[123.4.56.78,54321] established&lt;br /&gt;    *** DCC SEND:foo.jpg to buddy completed 1.234 kb/sec&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-3232532977095296131?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/3232532977095296131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=3232532977095296131' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/3232532977095296131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/3232532977095296131'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/2-chatting-on-irc.html' title='2. Chatting on IRC'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-1898011446700030376</id><published>2008-03-21T23:16:00.000-07:00</published><updated>2008-04-01T10:04:00.275-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>1. Introduction and Basic Commands</title><content type='html'>1. Introduction and Basic Commands&lt;br /&gt;1.1. Introduction to IRC&lt;br /&gt;What is IRC?&lt;br /&gt;&lt;br /&gt;IRC (Internet Relay Chat) is a multi-user, multi-channel chatting system. Imagine sitting in front of your computer and "talking" through typed messages with either one person or many other people from all over the Internet, all in real time! Best of all, once you get set up, chatting on IRC is totally free!&lt;br /&gt;Some Other Help Files&lt;br /&gt;&lt;br /&gt;There are many help files designed to introduce you to the exciting and sometimes bewildering world of IRC. This tutorial that you are reading now is intended to walk you through the important commands one by one so that you can learn by doing. If you are brand new to IRC, you may wish to first read the very short IRC Prelude (or its many translations) to get yourself oriented. Then later you may check out one of the standard references, such as the alt.irc newsgroup's frequently asked questions (FAQ) list, or the long but extremely thorough IRC Primer which is organized like a textbook.&lt;br /&gt;Client / Server&lt;br /&gt;&lt;br /&gt;IRC is based on a client-server model. You run a client program on your own computer which connects you to a server computer on the Internet. These servers link to many other servers to make up an IRC network, which transport messages from one user (client) to another. In this manner, people from all over the world can talk to each other live and simultaneously.&lt;br /&gt;&lt;br /&gt;To join in the fun, all you need is an Internet Service Provider to get you connected to the Internet (if you're able to read this web page, you're already connected), and an IRC client program. The most popular clients are mIRC for the Windows operating system, ircII for UNIX, and Ircle for Macintosh. A good provider should have installed one of these for you already, if not you can download them yourself for free. (Ircle and mIRC are shareware, meaning you get a one month free trial, then if you like it and keep it, you are bound by an honor system to pay the author a modest fee.)&lt;br /&gt;Networks, Servers, and Channels&lt;br /&gt;&lt;br /&gt;Once you are set up with a provider and a client, you are in control. Choose a nickname you wish to be known by, then connect to one of the many different IRC networks catering to different geographical locations, interests, or philosophies. The largest networks have tens of thousands of people online at any given moment, drawn from an order of magnitude or more of regular visitors. These people create thousands of channels (sometimes incorrectly called "chat rooms") where people may meet and mingle. You may join these channels and participate in the group discussion, or you may elect to chat privately with individuals.&lt;br /&gt;&lt;br /&gt;Conversations on a channel are like those at a party: everybody who is present hears everything that everybody else is saying. If somebody is late to the party or leaves early, however, they will not hear what is said in their absence. All channels on IRC have names starting with #, such as #irchelp where you can get technical IRC help, or #new2irc where new users are welcome to join and chat. Usually, the name of the channel shows what it's for, but not always.&lt;br /&gt;[ contents | 1 | 2 | 3 | bottom ]&lt;br /&gt;1.2. Quick Start&lt;br /&gt;&lt;br /&gt;We will assume you or your provider has installed one of the mainstream IRC clients already. If not, see the links in the previous section. Once installed, most clients have shortcuts for getting started quickly, using default nicknames, servers, and ports on those servers. (To help distribute the load better, each server permits connections on many different openings or "ports", usually leading to redundant connections to the same IRC network.)&lt;br /&gt;&lt;br /&gt;For example, mIRC has a connection dialog that lets you pick your nickname and suggests some server choices. From the UNIX prompt, ircII may be launched just by typing irc which should connect you using your login name as your nickname and a default server. Ircle has a few icons in its folder such as #macintosh and all you need to do is double-click on them to join that channel, which happens to be on a network called Undernet.&lt;br /&gt;&lt;br /&gt;If these quick starts don't immediately work for you, don't worry, they are just like teaser movie previews compared to the full IRC experience. In the next section, we will show you how to make a proper connection to a server, then how to list available channels and join them, as well as how to find your friends and like-minded people.&lt;br /&gt;[ contents | 1 | 2 | 3 | bottom ]&lt;br /&gt;1.3. Basic IRC Commands&lt;br /&gt;&lt;br /&gt;Every IRC client has an input area where you can type what you want to say or issue IRC commands. You issue IRC commands by typing on a new line something beginning with a / (forward slash) character. Anything that does not begin with a / is assumed to be a message you are typing to someone or some channel. In the following I will describe the more common commands used in everyday IRC life. Commands you are supposed to type will be shown in red, while text which you will see in response will be shown in blue.&lt;br /&gt;&lt;br /&gt;In addition, the graphical clients such as mIRC or Ircle allow you to use a mouse to point and click your way around IRC, so that you don't have to type many of these commands manually. You should still learn the commands properly, because often they are the only way to specify precisely what you want done, and also they are often faster and easier than navigating through the labyrinth of buttons, menus, and dialogs that are supposed to make your life easier.&lt;br /&gt;&lt;br /&gt;/HELP [optional command name]&lt;br /&gt;&lt;br /&gt;    The first and most useful command is the on-line help built into all good IRC clients just by typing /help where you normally type to chat. This should bring up a list of all commands. You can also get specific help for a command, such as /help who for the /who command.&lt;br /&gt;&lt;br /&gt;    You can get a quick introduction to IRC built into your client. mIRC users type /ircintro while ircII users type /help intro or /help newuser.&lt;br /&gt;&lt;br /&gt;    If you are not sure about the spelling of a mIRC command, just type in the first few letters. The help window, which shows commands arranged alphabetically, will open to approximately the right place so that you can choose to learn about a specific command.&lt;br /&gt;&lt;br /&gt;    If you are not sure about the spelling of an ircII command, type the first few letters and press the ESCape key twice. ircII will give you a listing of COMMANDS and ALIASes that start with that prefix. Don't forget the "/irchelp/" in front of the command, though.&lt;br /&gt;&lt;br /&gt;    For example, you type the following:&lt;br /&gt;&lt;br /&gt;    /W &lt;ESC&gt;&lt;ESC&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    You get as a response the following (this is just an example. Your screen may show more or less aliases or commands):&lt;br /&gt;&lt;br /&gt;    *** Commands:&lt;br /&gt;    ***     WAIT           WALLOPS        WHILE          WHO&lt;br /&gt;    ***     WHOIS          WHOWAS&lt;br /&gt;    *** Aliases:&lt;br /&gt;    ***     W              WA             WH             WI&lt;br /&gt;&lt;br /&gt;/SERVER new-server-hostname&lt;br /&gt;&lt;br /&gt;    Each server is known by a "hostname" such as irc.ais.net, us.undernet.org, irc.dal.net, or irc.webbernet.net, which are sample servers for the networks EFnet, Undernet, DALnet, and IRCnet, respectfully. Just specify the hostname to connect or switch to that server. For example:&lt;br /&gt;&lt;br /&gt;    /SERVER irc.psinet.com&lt;br /&gt;&lt;br /&gt;    You then see the following messages indicating your client has successfully connected to that server.&lt;br /&gt;&lt;br /&gt;    *** Looking up your hostname...&lt;br /&gt;    *** Found your hostname, cached&lt;br /&gt;    *** Checking Ident&lt;br /&gt;    *** Got Ident response&lt;br /&gt;    *** Welcome to EFNet IRC - the Internet Relay Chat Network foo&lt;br /&gt;    *** Your host is irc.psinet.com, running version 2.8/hybrid-5.3&lt;br /&gt;    [remaining server messages truncated]&lt;br /&gt;&lt;br /&gt;/NICK new-nickname&lt;br /&gt;&lt;br /&gt;    Change the nickname by which you are known. Nicknames are usually limited to 9 characters. For example, if your default nick was "foo" and you want to change it to "YourNick":&lt;br /&gt;&lt;br /&gt;    /NICK YourNick&lt;br /&gt;    *** foo is now known as YourNick&lt;br /&gt;&lt;br /&gt;/LIST&lt;br /&gt;&lt;br /&gt;    Lists IRC channels, number of users, and topic for each. This is how you find places to go meet people and chat.&lt;br /&gt;&lt;br /&gt;    /LIST&lt;br /&gt;    *** Channel    Users  Topic&lt;br /&gt;    *** #test      1      this is a test channel&lt;br /&gt;    *** #IRChelp   18     Ask questions on the channel or see www.irchelp.org&lt;br /&gt;    [remainder of list not shown]&lt;br /&gt;&lt;br /&gt;    If you're on a big network, this list may be very long, up to many thousands of channels! It may even cause you to flood yourself off so that you get disconnected from the server. If that happens, try using different servers on that network, or instead use the searchable EFnet channel list web page which is updated hourly, or the less frequently updated but more comprehensive Liszt channel list.&lt;br /&gt;&lt;br /&gt;    You can also search for specific keywords by using /LIST keyword in mIRC, or /LIST *keyword* in ircII. Note this may or may not be any faster or safer than a full list depending on the network. On networks like EFnet and IRCnet, for example, your client gets the full list first and then does the filtering internally before displaying matches to you. On Undernet, the server filters the list and sends only the matches to you, which can be much faster if you're on a slow modem. &lt;br /&gt;&lt;br /&gt;/NAMES #channel-name&lt;br /&gt;&lt;br /&gt;    Shows the nicknames of all users on that channel. While theoretically this is supposed to work whether or not you are on that channel, in practice most people these days are set to be "invisible" and thus do not show up on such queries unless you are in the same channel already.&lt;br /&gt;&lt;br /&gt;    /NAMES #demo&lt;br /&gt;    Pub: #demo   @YourNick +buddy DeepMpact @FunGuy PrettyGrl&lt;br /&gt;&lt;br /&gt;    The "@" symbols show that YourNick and FunGuy are "channel ops", and that buddy has been given a "voice". These terms will be described in more detail in the channel modes section later. &lt;br /&gt;&lt;br /&gt;/WHOIS nickname&lt;br /&gt;&lt;br /&gt;    Shows information about the nick specified.&lt;br /&gt;&lt;br /&gt;    /WHOIS buddy&lt;br /&gt;    *** buddy is abcd@dialup-6.provider.com (Think different.)&lt;br /&gt;    *** on channels: @#demo #test123&lt;br /&gt;    *** on irc via server irc.psinet.com (PSI Net EFNet IRC Server)&lt;br /&gt;&lt;br /&gt;    The "abcd@dialup-6.provider.com" looks like an email address but actually abcd is buddy's identifying "username" on dialup-6.provider.com, which is the "hostname" of the computer buddy is using for IRC. One cannot arbitarily change the hostname, because it is the computer's address on the Internet, and it is required in order for the IRC server to communicate with one's computer properly. Next, in the parentheses, buddy shows a personal message instead of the real name which is supposed to go there.&lt;br /&gt;&lt;br /&gt;    The second line shows he is on the "public" channels #demo and #test123, and the @ symbol means he is an operator on #demo. It doesn't show other, "secret" channels he might be on. Finally the third line shows which IRC server he is using. We will discuss public/secret channels and operators later in part 3. &lt;br /&gt;&lt;br /&gt;/AWAY away-message-here&lt;br /&gt;&lt;br /&gt;    Leave a message explaining that you are not currently paying attention to IRC.&lt;br /&gt;&lt;br /&gt;    /AWAY getting coffee, be back in 5 mins&lt;br /&gt;    You have been marked as being away&lt;br /&gt;&lt;br /&gt;    If your friend does /whois YourNick now, they will get the 3 lines as described in the /whois section above, plus a final line saying:&lt;br /&gt;    *** YourNick is away: getting coffee, be back in 5 mins&lt;br /&gt;&lt;br /&gt;    /AWAY without any additional argument will remove the away message.&lt;br /&gt;&lt;br /&gt;    /AWAY&lt;br /&gt;    You are no longer marked as being away (or something to that effect)&lt;br /&gt;&lt;br /&gt;/QUIT [optional farewell message]&lt;br /&gt;&lt;br /&gt;    Exits IRC (also leaves any channels you may be on).&lt;br /&gt;&lt;br /&gt;    /QUIT hasta la vista, baby!&lt;br /&gt;    *** Signoff: YourNick (hasta la vista, baby!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-1898011446700030376?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/1898011446700030376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=1898011446700030376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/1898011446700030376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/1898011446700030376'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/1-introduction-and-basic-commands.html' title='1. Introduction and Basic Commands'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-1479283404173437135</id><published>2008-03-21T23:13:00.000-07:00</published><updated>2008-04-01T10:04:00.275-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>IRC Connection Problems</title><content type='html'>IRC Connection Problems&lt;br /&gt;&lt;br /&gt;by Joseph Lo aka Jolo @ EFnet&lt;br /&gt;updated Oct 16, 2004 (server lists in green are updated manually and not very often, but we show you exactly how to get this information yourself anyway)&lt;br /&gt;&lt;br /&gt;This troubleshooting guide is intended for people who already know what IRC network they want to connect to (such as EFnet or DALnet), but cannot succeed even after trying many different servers. Follow these directions step by step until you get connected.&lt;br /&gt;1. Use the built-in server list in your client&lt;br /&gt;&lt;br /&gt;Try all of servers listed for a particular network in your program. mIRC users should download the latest server list which is updated even between mIRC releases (save as "servers.ini" in your main mIRC folder). HINT: Remember to use other ports than the default 6667, such as 6666 or 6668 which may be faster. NOTE: This is just a first step, since such static server lists are by their nature always out of date and incomplete. Read on.&lt;br /&gt;2. Use server lists on the web&lt;br /&gt;&lt;br /&gt;Failing the above, try server lists on the web. Some of these are automatically updated and thus guaranteed to be complete and up to date, such as for EFnet and IRCnet. You can't download these lists, but you can try the servers manually one by one until you find ones that work. Some servers also have "random" or "round robin" server names, such as irc.efnet.org or irc.efnet.org for EFnet. (You would of course have to know this special server name already, so it may be good to ask on #help for whatever network you chat on to see if they have such a random server name.) When you try to connect to such a server name, it actually redirects you to one of many servers defined by those who run the network. If at first you don't succed, just try again a few times, since you get a different server every time you try, and chances are one will work sooner or later. Read on for more specific advice.&lt;br /&gt;3. I got connected, but I only have 1 server to use!&lt;br /&gt;&lt;br /&gt;If you can get connected at all, then you can try to identify the source of the problem and find alternative servers. The 3 most common problems are shown below, then explained in detail in section 4.&lt;br /&gt;&lt;br /&gt;   1. You are just not authorized, meaning those servers don't want people from your ISP to connect (this is very common),&lt;br /&gt;   2. You have no reverse DNS, so that you show up with IP numbers instead of a hostname, and/or&lt;br /&gt;   3. Your identd is not working. &lt;br /&gt;&lt;br /&gt;In all 3 cases, you can use what I will call the "/who trick" to find other servers that allow people like you to connect. Use the /who command with appropriate "wild cards" to search for people that have the same ISP or problem that you do. Pick some of those people and use /whois nickname to see what servers they are using. mIRC users who can do this very easily with a simple script (save as "whosearch.mrc" in mIRC directory, within mIRC do /load -rs whosearch.mrc and then search by /whosearch *.home.com for example).&lt;br /&gt;4. Dealing with common problems&lt;br /&gt;4.1. No authorization - with valid hostname&lt;br /&gt;&lt;br /&gt;If you get error messages like this:&lt;br /&gt;Closing Link: something.domain.com (You are not authorized to use this server) or&lt;br /&gt;Closing Link: nickname[blah@@255.255.255.255] (You are not authorized to use this server)&lt;br /&gt;&lt;br /&gt;In this case, you have a proper hostname (something.domain.com, sometimes replaced by the bogus "255.255.255.255" instead), but the IRC server does not allow your provider to access it. Just because IRC is free doesn't mean it's a public resource or a right. In fact, each IRC server is privately owned by companies or organizations and open to many people, but not necessarily to everybody. Some servers may only allow people from their own ISP, geographical region, or country to connect. Just be patient and try different servers in your geographic area or country. On networks like EFnet, most of us can find at least 3 or 4 servers out of ~35 that will let us connect. You can find alternative servers using the "/who trick" such as /who *.domain.com (notice how I took out the front part of the hostname and replaced it with a "*" which means match anything). mIRC users with our whosearch.mrc script can just do /whosearch *.domain.com.&lt;br /&gt;&lt;br /&gt;We've done this for a large ISP comcast.net as an example.&lt;br /&gt;comcast.net:&lt;br /&gt;&lt;br /&gt;irc.inet.tele.dk irc.scnet.net irc.easynews.com irc.nac.net irc.choopa.net irc.blessed.net irc.blackened.com&lt;br /&gt;4.2. No authorization - no reverse DNS (unresolvable IP number)&lt;br /&gt;&lt;br /&gt;This problem is marked by error messages like this:&lt;br /&gt;Closing Link: 123.45.6.78 (You are not authorized to use this server)&lt;br /&gt;&lt;br /&gt;Note the IP number (123.45.6.78) which does not resolve to a hostname like in the example in section 4.1 above. Normally, you get an IP number from your Internet Service Provider (ISP), and they also set up their Domain Name Server (DNS) so that the IP will translate into a hostname like something.domain.com. When this "reverse DNS" doesn't work, you are known by just the IP number. NOTE: Sometimes even when you have properly working reverse DNS, the "Closing Link" error message will still show just your IP on certain servers such as irc.mindspring.com.&lt;br /&gt;&lt;br /&gt;This is either due to a temporary problem with the DNS at your provider or the IRC server, or your ISP failed to set you up properly. Other than complaining to your ISP or using a better ISP, what's the solution? Use one of the servers that may still allow you to connect. Once you do connect, you can use the "/who trick" to find other servers by doing /who 2??.*.*.*, or mIRC users with our whosearch.mrc script can do /whosearch 2??.*.*.*. As of the date at the top of this page, these EFnet servers allowed at least some people without reverse DNS to connect:&lt;br /&gt;&lt;br /&gt;irc.homelien.no irc.Prison.NET irc.easynews.com irc.weblook2k.com efnet.demon.co.uk irc.isdnet.fr irc.he.net irc.Qeast.net irc.nac.net irc.secsup.org irc.inter.net.il irc.inet.tele.dk irc.daxnet.no --&gt;&lt;br /&gt;4.3. No identd&lt;br /&gt;&lt;br /&gt;The error message says something like "install identd", or sometimes just "K-lined", or WebTV users see "WebTV can't use that service"&lt;br /&gt;&lt;br /&gt;If you have no identd, after you connect to the IRC server you will see a ~ (tilde) character before your username when you /whois your own nickname, like "joebob is ~foo@@something.com". Large networks like EFnet and DALnet often require identd, an identification protocol that verifies your username. (Geek talk: Designed for multi-user UNIX systems, identd is meaningless on single-user PCs which can use any arbitrary username. Unfortunately, certain insecure machines without identd are frequently exploited to cause IRC abuse, hence the ban against those without identd.)&lt;br /&gt;&lt;br /&gt;How you fix your identd depends on what kind of internet connection you have:&lt;br /&gt;&lt;br /&gt;    * If you have a direct internet connection (no sharing or firewalling that you know of):&lt;br /&gt;          o If you use a PC or Mac IRC client like mIRC, PIRCH, or Ircle, it has identd built in already. In mIRC, check to make sure it is enabled: Alt-O | Connect | Identd, check all 3 boxes, see this figure. Ircle and Snak's identd is always on. If identd is on and doesn't work, you have sharing or firewall issues, see next major section.&lt;br /&gt;          o If you are on a UNIX machine, the administrator must install identd such as pidentd. identd is a good, security-enhancing thing, described in the technical specs RFC 1413. &lt;br /&gt;    * If you share or firewall your internet connection, such as sharing a DSL/cable connection among multiple PCs, or connecting through a proxy/hub/router, or running a software firewall program (including the one built into Windows XP), you should consult our firewall FAQ. In brief, here are your options:&lt;br /&gt;         1. Windows XP has a built-in Internet Connection Firewall (ICF) which breaks identd and DCC. See Microsoft's help page for how to disable it. If you want to keep ICF on, you'll have to modify it, see the next section.&lt;br /&gt;         2. The proper networking fix is to open up incoming TCP/IP on port 113 for identd and a range of unprivileged ports above 1024 for DCC, and redirect traffic on those ports to your local IP number behind the firewall. (By default, mIRC uses random ports in the 1024-5000 range for DCC, but you can constrain that to something like 1024-1034 in the DCC options, and open up those same ports in the firewall.) Exactly how all this is done depends on your firewall, consult your documentation and our firewall FAQ.&lt;br /&gt;         3. Alternatively, you may have a real computer acting as the gateway/proxy. If you can run an IRC client like mIRC on the gateway machine and identd works fine, then you can try to install a "dummy" identd program on that gateway machine, which will handle all identd requests for the shared machines. It does not help to put identd on the machines behind the gateway. Beware - using a dummy identd may make all your machines appear to be clones with the same user@@hostname, which many servers/channels do not allow and can get you banned.&lt;br /&gt;                o If the gateway computer is running Windows or Mac OS, install this Windows identd or Mac OS identd on the gateway machine.&lt;br /&gt;                o If the gateway is a UNIX masquerading firewall, install midentd. For help, try asking on *nix help channels like #unixhelp, #linuxhelp, or #nixhelp. &lt;br /&gt;&lt;br /&gt;If all else fails, use servers that don't require identd, such as those listed below. Once you connect with one, find others by doing /who *~* or mIRC users with our whosearch.mrc script can do /whosearch *~*.&lt;br /&gt;&lt;br /&gt;As of the date at the top of the page, these EFnet servers allowed at least some people without identd to connect:&lt;br /&gt;&lt;br /&gt;irc.arcti.ca irc.desync.com irc.blessed.net irc.he.net irc.umich.edu irc.easynews.com irc.scnet.net irc.mzima.net irc.avalonworks.ca irc.blackened.com irc.homelien.no efnet.xs4all.nl irc.daxnet.no efnet.demon.co.uk&lt;br /&gt;5. Other common problems&lt;br /&gt;&lt;br /&gt;"No more connections allowed in your connection class"&lt;br /&gt;&lt;br /&gt;    In English, this means the server is full for people like you, at least for now. People from different providers might still be able to connect. You might see this sometimes on servers that you were able to connect to just recently. Try a different port on the same server (other than 6667) or try a different server for a while. &lt;br /&gt;&lt;br /&gt;"Unable to resolve IRC server name"&lt;br /&gt;&lt;br /&gt;    If you try many servers from many networks and they all fail with something like this, then the problem is on your end. Either your provider's DNS is not working or your PC's networking is not set up properly to access that DNS. A good check is to see if you can still use your PC to do other activities like browsing the web. If you are a mIRC user, you can get more information from the relevant mIRC FAQ. &lt;br /&gt;&lt;br /&gt;"Connection timed out"&lt;br /&gt;&lt;br /&gt;    This vague error just means you couldn't establish a connection (as if you didn't know this already). If you get it a lot, try some of the servers listed above which are tolerant of identd or reverse DNS problems, in case that is your actual problem and you're just not getting the right error message. If that still doesn't work, it's possible that your ISP is blocking the connection attempt. This is often the case with school or company firewalls designed to discourage or ban IRC activity. The only way to be sure is to ask your network administrators or information technology people. You can sometimes get around this by using port numbers outside the usual 6660-9 range, such as irc.mcs.net port 31337 or irc.lightning.net port 5555, but you are responsible for the potentially serious consequences of intentionally ignoring your school or company's policies. Those rules exist for a reason, and breaking them is usually not wise. &lt;br /&gt;&lt;br /&gt;6. I keep getting disconnected!&lt;br /&gt;&lt;br /&gt;This is a little different, let's assume you can connect just fine, but you get disconnected a lot. Here are some common problems.&lt;br /&gt;&lt;br /&gt;"Ping timeout" or "Connection reset by peer" or "Software caused connection abort"&lt;br /&gt;&lt;br /&gt;    If this happens just once in a while, don't worry. The network connection between your client and the server got broken, it happens. Some people using Windows seem to have particularly unstable winsock, welcome to the wonders of Windows. The actual error message is not very informative or even reliable, and there is no fix beyond making sure Windows is up to date with the latest patches. Note that pinging a server will have no effect for this problem. If it's happening repeatedly or only when you visit certain channels or talk to certain people, then you may be the victim of a denial of service attack (better known as "getting nuked"). Don't immediately assume something evil is going on, though, since the vast majority of these disconnects are due to natural causes. Try using different servers/ports, or avoid your usual nickname and channels for a while, see if the problem goes away. &lt;br /&gt;&lt;br /&gt;"Excessive idle"&lt;br /&gt;&lt;br /&gt;    A minority of servers (irc.prison.net on EFnet for example) don't like you to idle, so don't. Just use other servers which don't mind. Do not break server rules by using anti-idle scripts, that's lame, unncessary, and often not effective any way (since they know all the usual tricks too). Intentionally breaking their rules may even earn you a k-line (server ban).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-1479283404173437135?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/1479283404173437135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=1479283404173437135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/1479283404173437135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/1479283404173437135'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/irc-connection-problems.html' title='IRC Connection Problems'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-6941691552740769150</id><published>2008-03-21T23:12:00.002-07:00</published><updated>2008-04-01T10:04:00.276-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>8 Other resources</title><content type='html'>8 Other resources&lt;br /&gt;&lt;br /&gt;8.1 Undernet Channels&lt;br /&gt;&lt;br /&gt;#class&lt;br /&gt; Holding classes to teach about IRC. (how to defend against flood, basics of IRC, e.t.c) Several teachers are available for questions during the class. When there's no class, there's a bot there with various helpfull textfiles.&lt;br /&gt;#opschool&lt;br /&gt; School for operators using X.&lt;br /&gt;#cservice&lt;br /&gt; Helping you with X and other cservice-related subjects.&lt;br /&gt;#ICMP&lt;br /&gt; Teaching you how to avoid flood and other Denial Of Service (DOS) attacks like nukes or ICMP attacks.&lt;br /&gt;#ZT&lt;br /&gt; "Zero Tolerance." Helpchan for those suffering from channel-takeovers.&lt;br /&gt;#backorifice, #dmsetup&lt;br /&gt; Good channels for help with irc viruses&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;#help, #irc_info, #irchelp,&lt;br /&gt;#irc-help, #helpdesk, #userhelp, #userguide&lt;br /&gt; Various english-speaking helpchannels, mostly on the subject of IRC itself, but #help may help or redirect you on most issues.&lt;br /&gt;#hjelp&lt;br /&gt; Help in norwegian&lt;br /&gt;#aide, #ircaide&lt;br /&gt; Help in french&lt;br /&gt;#ircayuda&lt;br /&gt; Help in spanish&lt;br /&gt;#irc_ajutor, #rohelp&lt;br /&gt; Help in românã (from Romania?)&lt;br /&gt;#hjelp&lt;br /&gt; Help in norwegian&lt;br /&gt;#destek&lt;br /&gt; Help in turkish&lt;br /&gt;#mircscripts, #mirc-scripts, #scripters, #scripts&lt;br /&gt; Making your own scripts in mIRC&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;8.2 Web resources&lt;br /&gt;&lt;br /&gt;General information&lt;br /&gt;http://www.undernet.org/ is the startingpoint for getting to the Undernet resources, among them http://www.user-com.undernet.org/ Its “documents project” has all kinds of documentation. The CTCP and DCC RFC, the old IRC RFC (RFC1459) an IRC FAQ (old) and guides for the operator and channelservice commands, which I havn't covered. Also Beginner-help, newsletters, e.t.c Definitely worth a visit. If you want to dig deep in ircu, visit http://www.coder-com.undernet.org/, the home of the ircu serversoftware.&lt;br /&gt;&lt;br /&gt;http://www.user-com.undernet.org/documents/quitmsg.html A short and good FAQ about the meaning of all kinds of quitmessages.&lt;br /&gt;&lt;br /&gt;http://www.irchelp.org/ Another source for FAQs, help, e.t.c Its advantage is presenting the IRC as a whole,&lt;br /&gt;As it cover the 4 main nets in the texts, (Dalnet, Undernet, Efnet and Ircnet) you get a better sight of IRC&lt;br /&gt;as a whole.&lt;br /&gt;&lt;br /&gt;http://www.irc.org/ An interesting site both for general help and technical issues&lt;br /&gt;&lt;br /&gt;When browsing the websites above, you'll run into outdated information now and then. If some of the guides are confusing, it might be because they were written for IRCII users. (The origianl unix client) and mix irc commands with client specific commands.&lt;br /&gt;&lt;br /&gt;Links to some major nets may be found at http://www.mirc.co.uk/servers.html.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Setting up servers&lt;br /&gt;&lt;br /&gt;http://www.ircdhelp.org/ Impressive site for those interested in setting up and running irc servers&lt;br /&gt;http://serverwatch.internet.com/ircservers.html Reviews of irc serversoftware.&lt;br /&gt;Imagine setting up your very own little net :-)&lt;br /&gt;&lt;br /&gt;One server able to run on windows is http://www.wircds.com/. The site also contain a couple of helpfull things for the budding serveradmin like a configuration-file generator and a list of DNS services.&lt;br /&gt;&lt;br /&gt;http://www.raptorircd.org/ is an open-source ircd based on ircu. After reading this guide, you may find their userdocumentation familiar. ;-)&lt;br /&gt;&lt;br /&gt;Regarding encrypted traffic on IRC, UnrealIRCD at http://unreal.tspre.org/is one server which has implemented encrypted communication. Epic at http://epicssl.sourceforge.net/ is said to be the first client to support server-side SSL connections.&lt;br /&gt;&lt;br /&gt;One server that runs on IPv6 networks is IACD at http://trash.net/~reeler/iacd/&lt;br /&gt;&lt;br /&gt;Internet chatsystems at http://www.chatsystems.com/ has implemented a server that only accepts connections through a web-interface.&lt;br /&gt;&lt;br /&gt;A web-based client can be found at http://cgiirc.sourceforge.net/. It supports IPv6 networks and could be a workaround for restrictive firewalls.&lt;br /&gt;&lt;br /&gt;Another web-based client can be found at http://www.undernet.org/webchat.php&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-6941691552740769150?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/6941691552740769150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=6941691552740769150' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/6941691552740769150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/6941691552740769150'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/8-other-resources.html' title='8 Other resources'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-1726267260040128033</id><published>2008-03-21T23:12:00.001-07:00</published><updated>2008-04-01T10:04:00.276-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>7 The logon procedure</title><content type='html'>7 The logon procedure&lt;br /&gt;Connecting and beeing on IRC is nothing but a telnet session. The telnet address being the servername and the portnumber for example 6667. Here's what to do if you want to try an unpolished tour on IRC:&lt;br /&gt;You connect to the address, with the right portnumber, using a telnet client. (“telnet.exe” in windows works fine) Follow these steps:&lt;br /&gt;&lt;br /&gt;On undernet this may scroll up:&lt;br /&gt;NOTICE AUTH :*** Looking up your hostname&lt;br /&gt;NOTICE AUTH :*** Found your hostname, cached&lt;br /&gt;NOTICE AUTH :*** Checking Ident&lt;br /&gt;&lt;br /&gt;If mIRC, and not your ISP handles IDENTD requests, it might be necessary to have mIRC running at the same time. (see 2.4 for IDENTD) or the server, if it is more forgiving will still let you in, only putting a ~ before your username in the /whois reply.&lt;br /&gt;Regardless of whether the lines above came up or not, we continue:&lt;br /&gt;&lt;br /&gt;First you type: NICK yournickname&lt;br /&gt;Then you'll get a line saying: PING :somenumber, answear with: PONG samenumber. (If you don't get a PING, procede with USER)&lt;br /&gt;The PING-PONG that you may have seen in your status-window while online is the server checking to see if you'r still logged in, while this initial Ping-Pong is to stop IP-Spoofing. The machine the server sent the PING to must be the same as the one who sent a PONG back, since it knew the number. It also stops a few attacks by assuring the server that it's someone who wants to do IRC at the other end, as IRC supposingly is the only protocol going PING-PONG in this way.&lt;br /&gt;In fact, to somehow stop people abusing web-proxies, sending the command POST to ircu2.10.11 during login will disconnect you.&lt;br /&gt;&lt;br /&gt;Now follow up with the command: USER username "hostaddress" "someservername" :Yourname (Keep the ".)&lt;br /&gt;The username will be overridden by the IDENTD username if available, hostaddress and someservername is ignored but must be present. After that, various information scrolls up. (Some ircu specific here)&lt;br /&gt;&lt;br /&gt;Irc operators or administrators would here issue their password for special access. There are talks about using the password to log into the channelservice (X on Undernet) and set yourself +x (2.5.1) before you fully enter the net, so that your address is not visible to anyone during even a brief moment of the logon, but this is somewhat in the future. (2003 or later).&lt;br /&gt;&lt;br /&gt;If you’r connecting to undernet and using a firewall on your machine, the firewall may alarm you at this moment that someone in pinging your ports. This is not related to the IDENTD but is Undernet checking for malconfigured Wingate and Proxy servers (see http://help.undernet.org/proxyscan/)&lt;br /&gt;&lt;br /&gt;Time to be greeted:&lt;br /&gt;&lt;br /&gt;Welcome to the Internet Relay Network Alex&lt;br /&gt;Your host is irc.clockworkorange.co.uk, running version u2.10.11.rc.1&lt;br /&gt;This server was created Fri Jun 23 2002 at 13:28:57 MET DST&lt;br /&gt;irc.clockworkorange.co.uk u2.10.11.rc.1 dioswkg biklmnopstv bklov&lt;br /&gt;&lt;br /&gt;After this warm welcome, some pearls for clients:&lt;br /&gt;&lt;br /&gt;WHOX WALLCHOPS USERIP CPRIVMSG CNOTICE SILENCE=15 MODES=6 MAXCHANNELS=10 MAXBANS=30 NICKLEN=9 TOPICLEN=160 AWAYLEN=160 KICKLEN=160 are supported by this server&lt;br /&gt;CHANTYPES=+#&amp; PREFIX=(ov)@+ CHANMODES=b,k,l,imnpstr CASEMAPPING=rfc1459 NETWORK=UnderNet are supported by this server&lt;br /&gt;&lt;br /&gt;These ISUPPORT messages are an attempt at telling the client (mIRC, Pirch e.t.c) more about the server they connect to, so that they can switch on or off features depending on the net they’r on, instead of beeing bound to the archaic IRC-protocol.&lt;br /&gt;The first five indicate that these commands are available on this net, followed by the maximum number of “/silence”s for one user, max number of modes and channels for one user, max number of bans in one channel e.t.c&lt;br /&gt;In ircu2.10.10, "TOPICLEN" also controls the lenght of your QUIT and AWAY comment, as well as the operator's /KILL message. In 2.10.11 the length of the AWAY messages were split off as a separate setting, while QUIT is still controlled by TOPICLEN.&lt;br /&gt;You may observe a channel having more bans than the "MAXBANS" limit. This is purely an effect of merging after a netsplit.&lt;br /&gt;&lt;br /&gt;CHANTYPES indicate the three types of channels, +modeless (3.3), #ordinary and &amp;local (3.2). This only tells the client that these three characters are in use as channel prefixes, they do not convey the difference between these channels. PREFIX should be read as “o-mode in a channel (channel operator) is shown by a @ beside the nick, v-mode (voice) by a +.” (3.5.1). mIRC assume that these prefixes are sorted according to the power they possess.&lt;br /&gt;Chanmode is on the form CHANMODE=A,B,C,D where:&lt;br /&gt;A = modes that take parameters and may add or remove nicks or addresses from a list (the banlist for instance)&lt;br /&gt;B = modes that change channel settings and take a parameter when they are set or unset (setting the key for the channel)&lt;br /&gt;C = modes that change channel settings, but which take a parameter only when they are set (setting the limit for instance)&lt;br /&gt;D = modes that change channel settings, but take no parameters and all unknown/unlisted modes.&lt;br /&gt;&lt;br /&gt;CASEMAPPING refers, far as I know, to the what character map should be used on this network. rfc1459 refers to the “standard” for irc. (6.9)&lt;br /&gt;&lt;br /&gt;Later on follows the output of /lusers (4.1.1) followed by the server bragging about its personal record on connections, before we move on to the MOTD and after its words of wisdom we’re almost done:&lt;br /&gt;&lt;br /&gt;irc.clockworkorange.co.uk- on 1 ca 1(2) ft 10(10) tr&lt;br /&gt;&lt;br /&gt;where:&lt;br /&gt;on = Number of globally connected clients including yourself from your IP-number.&lt;br /&gt;ca = Connect Attempts, You have tried once, after 2 sequential connects you get throttled.&lt;br /&gt;ft = Free Targets. This is how many different people you may contact at once, also see 3.10&lt;br /&gt;tr = Targets Restored. Your targets are kept for 2 minutes or until someone else from your IP logs on. This stops you from “refilling” your free targets by reconnection.&lt;br /&gt;&lt;br /&gt;The example tells you that there’s one connected client from your IP number on the net, and this is your first connect-attempt in a while. You have 10 free targets and no targets restored. (also see 3.10)&lt;br /&gt;People joining a channel on invite will receive an extra target&lt;br /&gt;&lt;br /&gt;Local host: dialup-1984.ppp.bb.gov (192.117.116.115)&lt;br /&gt;Informing you what the server believe to be your IP and matching DNS address. Since ircu2.10.11, hostnames containing characters other than a-z A-Z 0-9 _ . and – are disallowed. Allowing them could potentially mess up both clients and scripts&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A logon example:&lt;br /&gt;NICK LouiseL&lt;br /&gt;PING :209491250&lt;br /&gt;PONG 209491250&lt;br /&gt;USER llane "ppp-21.metropolisnet.com" "irc.server.org" :Louise Lane&lt;br /&gt;&lt;br /&gt;What you specify in "someservername" dosn't seem to be crucuial, probably just a leftover from archaic IRC standards.&lt;br /&gt;When you want to get out, type QUIT. (A nice way to learn the commands needed to chat, is using /debug [on/off] in mIRC.)&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;You get no text displayed the moment you connect and the server does not echo the commands, so you will have to turn on local echo in your telnetclient.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-1726267260040128033?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/1726267260040128033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=1726267260040128033' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/1726267260040128033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/1726267260040128033'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/7-logon-procedure.html' title='7 The logon procedure'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-8487608808939048471</id><published>2008-03-21T23:09:00.000-07:00</published><updated>2008-04-01T10:04:00.277-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>6 Discussions</title><content type='html'>6 Discussions&lt;br /&gt;6.1 A look under the hood&lt;br /&gt;You might want to see what is transmitted between you and the server to better understand what's going on. mIRC has the command /debug on|off that saves a log in debug.log. In the log you will encounter "numeric replies", those numbers at the beginning of the lines. They are for example used in the /whois replies to identify the contents of each line. The common numeric replies are listed in chapter 6 in RFC1459, but I'd advice you to instead have a look at this webpage: http://mirc.stealth.net/download/ which contains a helpfile for numeric replies, also network-specific for Undernet, Dalnet and Efnet and give you good examples on ways to use them in scripts.&lt;br /&gt;&lt;br /&gt;6.2 Privacy and anonymity on IRC&lt;br /&gt;As a thumbrule you shouldn’t trust irc or internet for that matter when it comes to your privacy and anonymity.&lt;br /&gt;Some networks can send invisible listeners into any channel, some even record everything you say and do. Never trust a network that dosn’t give out their sourcecode. Personally I wouldn’t trust a network that put restrictions on what you can talk about either, as that easily justifies “violations” of privacy. It’s easy to eavesdrop on internet conversations and irc in particular. You may use DCC chats to bypass the irc-network, but if privacy is of great importance for the conversation at hand, consider a substitute for IRC, preferrably one with heavy encryption.&lt;br /&gt;As for anonymity, I’d say you are anonymous if people can’t track down your true identity. Your identity could be revealed by your IP address. This is the address of your computer when it’s on Internet, and can be translated into a corresponding DNS address. (Say modem50.ppp.village.net) Some nets mask your ID for other users, but on most nets you can see peoples address in the /whois reply. Even if your net masks it, they themselves have access to it, and could possibly hand it out. When you accept a DCC chat or filetransfer, you also reveal each others address. When someone has gotten your address, they ask your internet provider “who used that address at that time?” and if the ISP comply, your true identity is revealed. If IDENTD is used, your userid at your provider may be shown in a /whois, and a simple finger at your provider may reveal your identity. If you’r chased by lawyers, secret service or ECHELON itself, expect to be tracked down in more sofisticated ways.&lt;br /&gt;http://www.user-com.undernet.org/newsletter/archives/2000/newsletter03-00.html - bouncers features an article on “bouncers”, relay-servers that you can route your IRC chat through, making it appear on IRC like you originate from that server and not your machine. Much like anonymous mail forwarding. On the other hand, bouncers are a golden chance at listening in on IRC conversations. How far can you trust the bouncers, or to rephrase: How far can you throw Manhattan?&lt;br /&gt;&lt;br /&gt;What can the operators see according to current ircu?&lt;br /&gt;Operators can not see messages between users, they can not monitor the talking in a channel without joining it and they can not join a channel without beeing seen. 1)&lt;br /&gt;Apart from that, you should assume that the operators can join any channel regardless of restrictions, find you regardless of +i mode (2.5.1), see the secret channels you are on and who is in there with you. 2)&lt;br /&gt;If you have a special operator in mind, the version-reply (4.2.7) should give you sufficient information about his powers.&lt;br /&gt;&lt;br /&gt;But, that’s when we’re all playing by the rules. Perhaps the admin has tweaked ircu? perhaps he is packetsniffing his own machine? Tapping IRC chats are easy, and it isn’t harder with ircu than any other serversoftware.&lt;br /&gt;&lt;br /&gt;   1. I once were on a net where it was said they had a bot that could join a channel “invisibly”, and monitor for indecent words.&lt;br /&gt;   2. The ability to see inside +s/+p channels were added in ircu, but I guess other nets could have opted for this too.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6.3 What's a ping? Meet CTCP and DCC&lt;br /&gt;A ping files under what we call CTCP (Client To Client Protocol) commands.&lt;br /&gt;Essentially, sending a PING to a nick is an everyday PRIVMSG and the reply sent back is a NOTICE. A PRIVMSG is a message to a nick or a channel, so /ping #channel is a valid way to ping everyone in that channel.&lt;br /&gt;The time and IP is determined with a LONG-number, (see G-lines(5.1.2)), and the PRIVMSG/NOTICE line also contain some special characters. The /me command is also a CTCP command. (Called ACTION)&lt;br /&gt;You may convert between regular and long IP in mirc by typing //echo 2 $longip(IP-address)&lt;br /&gt;&lt;br /&gt;The DCC (Direct Client Connection) is initiated via CTCP but has its own life after that.&lt;br /&gt;For more information, have a look at http://www.doco-com.undernet.org/, they have both the DCC and CTCP RFC with good explanations. (Believe me, how CTCP work isn't hard to grasp at all) Type /ctcp nick clientinfo to see what commands the nick will respond to.&lt;br /&gt;Beeing on a LAN or using a firewall, you may have run into problems with DCC. This ICS and IRC FAQ discuss the problem and possible solutions.&lt;br /&gt;&lt;br /&gt;A small trick:&lt;br /&gt;Typing /raw PRIVMSG BlondeBunny :DCC CHAT chat 413460262 8888 will trick BlondeBunny into initiating a Telnet session with the roleplaying server furry.org on port 8888. The character is 01 in hex, (most easily retrieved by copying from the debug.log in mirc) This could have been used for say, checking your mail via mIRC, but alas! Several clients disallow attempts/accepts of connections lower than 1024, stopping those with malicious intents. You may manage to connect to port 25 on a mailserver via mIRC, but a port 23 telnet dosn't seem to work (Anyone out there who managed this through mIRC? Please drop me a mail)&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;Typing "/raw ping garbage" does a serverping. That's the ping that makes those "PING? PONG!" lines in the status-window, checking to see if you'r online. It’s not related to the CTCP ping. The serverping before ircu2.10.11 had a “remote” capability, see 1.4.&lt;br /&gt;&lt;br /&gt;6.4 What’s lag and bandwidth?&lt;br /&gt;Bandwidth is about how much data the servers manage to squeeze in on their lines. If there's much data passing through, its going slow. The result is lag, that it takes a long time before you see what people typed. The easiest way you can reduce your lag when you'r chatting with someone, is to initiate a DCC chat. The text is then passed directly between you, not through the irc-network. Also, you won’t be affected by a netsplit in DCC-chats&lt;br /&gt;For channels, you may want to use close servers. (4.1.2) The source of the lag can be traced down using /trace (4.1.5) and a remote whois (2.6)&lt;br /&gt;6.5 Desyncs after a netburst&lt;br /&gt;A netburst is the “reconnection” of the network after it has had a split.&lt;br /&gt;During the netburst, most information in the network like who’s on which channel is synchronized. A timestamp as the one in the g-lines (5.1.2) is used to decide between conflicting information. If for instance, two people have the same nick, the one who got it first keep it, the other one is kicked off the net. This is exploited by services like X on Undernet by setting the timestamp to 0 (1. january 1970) thus overriding all other settings withouth violating any IRC protocol.&lt;br /&gt;As of P10 (4.1.3) the away, silence, topic and invite information is not synchronized, to save bandwidth. Silence (2.12) has its own synch-system and common sense tell people to do the invite (3.6) over again. The average channelservicebot will synchronize the topic as well. To get hold of the away-message after a split without joining the persons server, you’d have to use a remote /whois (2.4)&lt;br /&gt;6.6 Obscure commands&lt;br /&gt;I believe that most commands in this guide can be usefull or interesting to someone out there. The commands below however, is absolutely uninteresting. But, this guide should contain every command reachable by the user, so here goes:&lt;br /&gt;/raw dns: Displaying Something about DNS-caching data. (Hurray! it’s gone in ircu2.10.10 :-D)&lt;br /&gt;/hash: I don’t even know! Grrr.. (Drat. The bugger is still around in 2.10.11 :-[ )&lt;br /&gt;But ofcourse, you can pretend for your friends it’s something much more interesting. Use your imagination and mail your ideas to me, I’ll add the best to the guide in the next edition.&lt;br /&gt;6.7 What’s Uworld, X and Cservice?&lt;br /&gt;uworld is a service running on undernet. Acting as a server, it can set modes for a channel and by that helping opers fix channels more easily. It also helps administering g-lines. It has no services for regular users, but if you ping or msg it too much, you might set off its G-line floodprotection. Cservice is another service running. It’s the one responsible for the X channelbots you’ve probably encountered if you frequent Undernet.&lt;br /&gt;&lt;br /&gt;6.8 Summary of Undernet anti-flood measures.&lt;br /&gt;A network will want to minimize the number of ways people can harass others on it. A common loophole were to take advantage of net-splits to gain op in channels and cause “nick-collisions”, to kick people off the net. This loophole has been eliminated on Undernet with the use of “timestamps”, but flooding, the most common way to cause a DOS (Denial Of Service) or just causing annoyance prevails. Flooding is to send a lot of unwanted data to something, so that their connection is lost, their channelwindow is filled with garbage or they’r otherwise harassed.&lt;br /&gt;&lt;br /&gt;I’ve mentioned the floodstoppers throughout the guide, Here’s a summary of how other people and the server is stopped from flooding you:&lt;br /&gt;&lt;br /&gt;    * Stops flooding in channel by nickchanges&lt;br /&gt;    * /Who and /names limit how many lines they send back to you&lt;br /&gt;    * A ban of a user already in channel shuts his mouth&lt;br /&gt;    * You can msg only a given number of people in a short time interval. (userhost/userip and wallchops works around it)&lt;br /&gt;    * ircu command “silence” is better than “ignore” as a floodstopper&lt;br /&gt;    * Clones are limited, and many connections from the same address in a short timespan might G-line you. (“reconnecting too fast, throttled”) Connecting 3 times in a row to the undernet within 20 seconds will get your IP throttled for 20 seconds.&lt;br /&gt;    * Somehow, getting the channellisting always floods me off EFNet, while it works just fine on Undernet.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Apart from this, the net takes action against you flooding it, by restricting remote calls to servers and hiding the network structure. Cservice also has floodstoppers built in.&lt;br /&gt;&lt;br /&gt;6.9 Characters on IRC&lt;br /&gt;For chatting in channels, anything that can be translated to ASCII gets through. (ASCII is a standard way to express characters) Note however, that since the parts of the ASCII table may be country-specific, your ASCII-art may not turn out as well for others. Fancy fonts will only show up on your own computer. You can use character map (charmap.exe) in windows to view the ASCII table.&lt;br /&gt;&lt;br /&gt;Channelnames: After the initial #, &amp; or +, all characters except NUL (\0), BELL (\007), CR (\r), LF (\n) a space or a comma&lt;br /&gt;Colons in channelnames are valid for ircu but may be reserved for other purposes on other nets.&lt;br /&gt;&lt;br /&gt;Nicks: The allowed characters are a to z, A to Z, 0 to 9 and [ ] { } [ ] { } \ | ^ ` - _&lt;br /&gt;This is the same as saying that ’-’ and the characters ’0’ to ’9’ and ’A’ to ’}’ in the ASCII table are allowed.&lt;br /&gt;The first character in a nick cannot be a ’-’ or a number.&lt;br /&gt;&lt;br /&gt;The characters { } | ^ are considered the lower case equivalents of [ ] \ ~ respectively. This is said to be because of IRCs scandinavian origin, but while scandinavians will notice that Æ,Ø,Å is forced lowercase in channelnames, Å and Ä is not equivalent with each other or with any of { } | ^. This bear the mark of a backward-compatible ircu feature, and how non-american letters are treated on IRC may vary between nets.&lt;br /&gt;&lt;br /&gt;A weird side-effect happens when trying to ban people with these characters in the name.&lt;br /&gt;Trying to ban the nick “ac\dc”, *|*!*@* will work where *\*!*@* fails. *ac\dc*!*@* works just fine too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-8487608808939048471?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/8487608808939048471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=8487608808939048471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/8487608808939048471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/8487608808939048471'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/6-discussions.html' title='6 Discussions'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-6685274262082764233</id><published>2008-03-21T23:08:00.002-07:00</published><updated>2008-04-01T10:04:00.277-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>5 STATS. Query for retrieving various data and statistics</title><content type='html'>5 STATS. Query for retrieving various data and statistics&lt;br /&gt;A command that gives you access to large amounts of information is STATS. How is the load on the ports divided? who is banned and why? how many is away? and many other things.&lt;br /&gt;Syntax:&lt;br /&gt;/STATS [&lt;query&gt; [&lt;server&gt;]]&lt;br /&gt;&lt;br /&gt;Stats on remote servers are partly disabled, for that “sense of achievement” in bandwidth saving. Undernet has also sadly disabled most of these locally, to stop attackers from seeing the network structure and other weak spots. Because of this, the information present about the stats replies here may be inaccurate for newer versions of ircu&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I refer to “lines”. These are literally lines in a configuration file on the server.&lt;br /&gt;The data are all kept in the same format for programming reasons, so some fields will be blank for some lines.&lt;br /&gt;c, h, i, k, l, m, o, u and y queries are common for all networks, the others are ircu implementations. Case sensitive only when stated.&lt;br /&gt;In addition, ircu.2.10.10 started implementing F-lines, socalled feature-lines to keep track of all the configuration and compile-time options and choices ircu allow. These lines are also responsible for the oper-only commands /set /reset and /get. Non-operators arn't allowed to view F-lines but I mention them here to avoid confusion.&lt;br /&gt;&lt;br /&gt;5.1 Who's allowed in and how.&lt;br /&gt;5.1.1 k K-line&lt;br /&gt;Returns a list of banned usernames and hostnames. (Kill-lines) Helps you determine why someone can't get in.&lt;br /&gt;&lt;br /&gt;K:&lt;host/IP mask&gt;:&lt;optional reason&gt;:&lt;username mask&gt;:-1&lt;br /&gt;the optional reason can be entered plainly using quotes or, when preceded by a !, be the path to a textfile that contain the reason.&lt;br /&gt;(versions prior to 10.05 could only allow reference to a filename, without !)&lt;br /&gt;As of ircu2.10.11, the &lt;host/IP mask&gt; field can filter on your infotext (realname) when preceded by $R&lt;br /&gt;The -1 is a field who should be a port by the standard syntax, set to -1 since it dosn't make sense in this context.&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;K * user 0 -1&lt;br /&gt;K *.ppp.some.mr Go_away ~tagger 0 -1&lt;br /&gt;anyone matching "user@*" is banned. (guaranteed fake ID) anyone matching ~tagger@ppp.some.mr is also banned.&lt;br /&gt;&lt;br /&gt;K *.compuserve.com !klines/us * 0 -1&lt;br /&gt;Anyone from compuserve is k-lined, server looking up a file and replying with its contents, say “Please use a us-server".&lt;br /&gt;&lt;br /&gt;K * K-lined because of clones ~victor&lt;br /&gt;anyone matching ~victor@* is k-lined, just displaying the text "K-lined because of clones"&lt;br /&gt;&lt;br /&gt;K $R*sub7* you are infected with a trojan * 0 -1&lt;br /&gt;Will k-line anyone with infotext (see 2.14) mathing *sub7*&lt;br /&gt;&lt;br /&gt;If you happen to find a lowercase "k"-line, it works as other K-lines, except it contains an IP-address that will K-line the user even if his IP happen to resolve to a DNS address. This is part of the protection against "virtual host" misuse, as described in "userhost/userip" (2.9)&lt;br /&gt;k 192.168.* !klines/martians * 0 -1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Stats K has remote capabilities:&lt;br /&gt;Syntax: /stats k fullservername mask&lt;br /&gt;You have to pass along a mask, and you cannot force all lines “the wildcard way”. From ircu2.10.01 you can replace fullservername with a nick. (meaning the nicks server)&lt;br /&gt;&lt;br /&gt;Notes:&lt;br /&gt;the ~ is added by the server when it wasn't able to verify your address. (Which it does by IDENTD)&lt;br /&gt;Ircu also performs checks on your username outside the k-lines. Mixed case can trigger it&lt;br /&gt;the 0 and -1 at the end are just unused fields.&lt;br /&gt;In addition to all this, there’s some fuzzy features. A server might add G-lines to its K-line list automatically and allowing opers from other servers to set its k-lines. It shouldn’t make much difference though. There's also an attempt at "timed K-lines" for balancing the load from near and abroad as the peak-hours shift across the globe.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5.1.2 g G-line&lt;br /&gt;shows G-lines.&lt;br /&gt;They work as K-lines except that they ban for the whole undernet (Global-lines) and they expire automatically after a given period of time.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;G **@fish.baccalao.com 970523933 [Super] large trout slapping [3]&lt;br /&gt;G *timmy@grasshoppers.org 970574400 Banned due to clones.&lt;br /&gt;&lt;br /&gt;The format is simple: Address, number, reason. The number is based on a startingpoint. the "epoch". It's a LONG number that tells the number of secs since 01:00 1. jan 1970 GMT time. if you try /debug in mIRC you will find it used in whois-replies. (signed on.. e.t.c) and also in pinging. For the whois, your program automatically converts the number to your timezone and translates it into readable format.&lt;br /&gt;When the date/time specified by number is reached, the G-Line is lifted. A G-line usually lasts for a few hours or a week, but could easily be set to last forever. (Well, over 30 years atleast.) Also see (6.5)&lt;br /&gt;&lt;br /&gt;Note that the number used will not be the same as the number used for date/time in e.g Excel, because Microsoft chose another startingpoint. (There were no Microsoft in 1970 :-)&lt;br /&gt;&lt;br /&gt;Lacking a command to add k-lines on the fly, a form of g-lines not propagating to other servers, socalled local global-lines (sic!) were made available. Then in principle you could do away with the k-lines.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;How do one translate the LONG number to a normal date/time format? I got this handy alias for mIRC from Rainman:&lt;br /&gt;First make this an alias: /unixtime /echo $active $$1 = $asctime($$1) and then you type say, /unixtime 970574400 and get the output: 970574400 = Tue Oct 03 14:00:00 2000 You may type //echo $asctime(970574400) if you don't know how to make aliases.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5.1.3 i I-line&lt;br /&gt;A list of the hosts that is allowed to connect to the server as a client.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I:&lt;IP mask or garbage text to force resolving (e.g NOMASK) &gt;:&lt;digit&gt;:&lt;hostmask&gt;:&lt;port&gt;:&lt;class&gt;&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;I nomatch * *@*tea-house.com 0 4&lt;br /&gt;I *@*.se * *@*.se 0 20&lt;br /&gt;I *@*.fi * *@*.fi 0 20&lt;br /&gt;I *@*shoeshop.com 5 *@*shoeshop.com 0 20&lt;br /&gt;I *@* * Unresolved 0 1&lt;br /&gt;I *@* * *@* 0 1&lt;br /&gt;&lt;br /&gt;On the last two lines, you can see that the server will in general allow anyone. Even if the server can't get your DNS address (Unresolved) But In the K-line list, your host or domain might be k-lined because you should use a closer server. (European clients will experience this a lot on us-servers and vice versa.)&lt;br /&gt;&lt;br /&gt;Take notice of the 2. field from left &lt;digit&gt;. In versions earlier than ircu2.10.05, “ONE” here meant that only one connection were allowed in from the same IP-address, when sorted under this I-line. From 10.05 they can put a * to mean unspecified, or a digit, 1 to 9, to limit the number of clients connecting. In the example above, shoeshop.com are allowed to have 5 connections from the same IP-address, where the connections are counted globally. (Its total number connections to the IRC-network) The old “ONE” only looked for clients connected to this very server.&lt;br /&gt;To ease it for lazy server-admins, ;-) one can compile ircu to still accept “ONE” in the I-lines. If so is done, a “O” shows up in the /version reply. (4.2.7)&lt;br /&gt;At the same time, the &lt;digit&gt; field is the field to put in the password for operator connections. That won't be displayed ofcourse :-)&lt;br /&gt;&lt;br /&gt;The &lt;port&gt; field is usually empty, hence the 0. But it's not port 0. If in use, it probably restricts the connection to use only the specified port.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;Your favourite server has got the following line and you are under the *.de domain: “I *@*.de 2 *@*.de 0 20”&lt;br /&gt;If you already had two connections to Undernet, possibly on other servers, this exact server would not let you in. Another server with a different setup, might still let you in.&lt;br /&gt;&lt;br /&gt;Q: What if I match more than one I-line?&lt;br /&gt;A: If the administrator has put the lines in the right order, you should be matched to the I-line with the most specific mask. (“*.yourprovider.com” is more specific than “*.com”)&lt;br /&gt;&lt;br /&gt;Q: Don't I and K lines "collide" sometimes?&lt;br /&gt;A: As a thumbrule, the leftmost, or most specific identification can override the other.&lt;br /&gt;&lt;br /&gt;This depends on the admin setting up the lines correctly&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;A European server might K-line the whole *.edu domain, but put *.someuniversity.edu in I-line. Someuniversity will then get in, so the "someuniversity." inclusion is overriding the .edu exclusion.&lt;br /&gt;A *!*someperson@someuniversity.edu K-line will in turn override the universities' general I-line.&lt;br /&gt;Also the common "*!~user!*@*" K-line will override the common *!*@* I-line, that allows anyone in general in.&lt;br /&gt;If a server has the same mask in both an I and a K line, the K override the I.&lt;br /&gt;&lt;br /&gt;I-lines can be fetched remotely. Same syntax as for k-lines (5.1.1)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5.1.4 o O-line&lt;br /&gt;This one returns a list of hosts from which normal clients may become operators.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;o *@*.sol.no * discotom 0 10&lt;br /&gt;o *@*.sn.no * discotom 0 10&lt;br /&gt;O *@*.online.no * McSyrup 0 10&lt;br /&gt;O *@*.sol.no * McSyrup 0 10&lt;br /&gt;&lt;br /&gt;Big O in the list means a global op, small o means a local op. Local ops can't act outside the server, and on Undernet they can't use Uworld. Ops can also see invisible people, but the "local ops" can only see those invisible on their own server. Your local "local ops" (locops for short) is shown in the "/who 0 o" command, along with the global operators.&lt;br /&gt;The ops listed in the example are put in connectionclass 10. (5.1.5) the * is for the hidden password, 0 is just empty.&lt;br /&gt;&lt;br /&gt;see 4.2.7 for more about the Op-status.&lt;br /&gt;&lt;br /&gt;5.1.5 y Y-line&lt;br /&gt;y shows Y (Class) lines from server's configuration file&lt;br /&gt;These classes are used to decide how many are allowed to connect from different places on the internet. A european server for example, might allow, say a maximum of 100 us-users, and would therefore put all *.com *.edu *.net and *.org users in a class with a maximum of 100. Another use, is putting the operators in a dedicated class, so that they'r sure to get in, even if the server should be full.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The syntax is:&lt;br /&gt;Y:&lt;class&gt;:&lt;ping freq&gt;:&lt;connect freq&gt;:&lt;maximum links&gt;:&lt;sendq size&gt;:&lt;current no. of links&gt;&lt;br /&gt;&lt;br /&gt;Example&lt;br /&gt;Y 0 120 600 1 2000000 1&lt;br /&gt;Y 70 200 120 10 4700000 3&lt;br /&gt;Y 20 180 0 300 400000 60&lt;br /&gt;Y 10 180 0 100 400000 4&lt;br /&gt;Y 5 180 0 50 400000 25&lt;br /&gt;Y 4 180 0 400 400000 368&lt;br /&gt;Y 3 180 0 200 200000 153&lt;br /&gt;Y 2 180 0 200 400000 200&lt;br /&gt;Y 1 180 0 400 400000 42&lt;br /&gt;&lt;br /&gt;In this example, class 1 can take up to 400 users, with a max sendque of 400000. But has only 42 users. The ping-frequency is allowed to be as high as 180. ping-frequency is how long you can be silent before a ping is sent. If all classes were filled up, this server would have 2370 clients. I choose to call the possible clients in a class "seats". We might guess that class 70 and 0, both with few seats, special ping-frequency and high sendq size, is dedicated to server-server connections.&lt;br /&gt;In O-lines (5.1.4) we read that for this server, class 10 is where the operators are placed.&lt;br /&gt;&lt;br /&gt;Where the classes are saved:&lt;br /&gt;Who goes in which class is defined in the I:lines. here's an example from a norwegian Undernet-server:&lt;br /&gt;&lt;br /&gt;I *@*.org * *@*.org 0 3&lt;br /&gt;I *@*.net * *@*.net 0 3&lt;br /&gt;I *@*.edu * *@*.edu 0 3&lt;br /&gt;I *@*.com * *@*.com 0 3&lt;br /&gt;I *@*.se * *@*.se 0 20&lt;br /&gt;I *@*.fi * *@*.fi 0 20&lt;br /&gt;I *@*.dk * *@*.dk 0 20&lt;br /&gt;[...]&lt;br /&gt;&lt;br /&gt;All americans are grouped in class 3, while people from the neighbouring countries goes in class 20. According to the y:lines above, the neighbour-countries has 300 "seats" dedicated to them, and us-citizens 200.&lt;br /&gt;Further down we find:&lt;br /&gt;I NOMATCH * *@*.telepost.no 0 4&lt;br /&gt;I NOMATCH * *@*.online.no 0 4&lt;br /&gt;I NOMATCH * *@*.telenor.no 0 4&lt;br /&gt;I NOMATCH * *@*.sol.no 0 2&lt;br /&gt;This means 600 "seats" are reserved for these hosts. (see y-lines) (NOMATCH forces the address to be resolved. The server dosn't want to be fooled) Coincidentally, these are domains belonging to the ISP running the server! ;-)&lt;br /&gt;&lt;br /&gt;To Determine your class: use /trace yournickname.&lt;br /&gt;Example: "User 3 Napoleon[modem15.lePPP.eifelnet.fr] 30" means nickname Napoleon belongs to class 70, beeing idle 30 secs.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5.2 Server-server connections&lt;br /&gt;5.2.1 c&lt;br /&gt;Returns a list of servers which the server may connect to or allow connections from.&lt;br /&gt;&lt;br /&gt;Example prior to ircu2.10.10:&lt;br /&gt;N *@130.240.16.107 * Lulea-R.SE.Eu.Undernet.org 0 80&lt;br /&gt;C *@130.240.16.107 * Lulea-R.SE.Eu.Undernet.org 4400 80&lt;br /&gt;&lt;br /&gt;Example, current ircu:&lt;br /&gt;C * * London.UK.Eu.Undernet.org 0 80&lt;br /&gt;C * * Amsterdam-R.NL.EU.Undernet.org 0 80&lt;br /&gt;C * * Oslo1.NO.EU.Undernet.org 0 70&lt;br /&gt;C * * Gothenburg.Se.Eu.Undernet.org 4400 80&lt;br /&gt;&lt;br /&gt;Earlier servers had two lines “C” to connect TO, and “N” to accept connection FROM.&lt;br /&gt;These are merged into one today. The IP of the server is also masked, along with the password ofcourse, for security reasons.&lt;br /&gt;The two last numbers are unixport and class to connect to. You’ll find the same port in /stats y (5.1.5)&lt;br /&gt;if the port is ommitted (0 as here) the server will not try to connect to that server.&lt;br /&gt;That means that the server in this example can accept connections from london, amsterdam, oslo1 and gothenburg,&lt;br /&gt;but will only try to connect to Gothenburg itself. This is part of defining the tree-structure.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5.2.2 U (uppercase)&lt;br /&gt;showing U:lines. Listing of servers allowed to act as “services”. Uworld is running x on Undernet&lt;br /&gt;Example:&lt;br /&gt;U Uworld.undernet.org Uworld,X,NickSvr,NickSaver,NickServ,LPT1,LPT2,AUX * 0 -1&lt;br /&gt;U Uworld2.undernet.org UWorld2,W,ChanSvr,ChanSaver,ChanServ,COM1,COM2,COM3,COM4 * 0 -1&lt;br /&gt;U Uworld.EU.undernet.org EuWorld,E,protocol,StatServ,NoteServ,Undernet * 0 -1&lt;br /&gt;As of ircu2.10.05 U-lines accept “nick jupes”. In effect, noone but uworld can use the above nicks.&lt;br /&gt;This includes W and X, but most of the nicks are “juped” to stop various nasty exploitations by users taking the nicks.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5.3 Statistics-related commands&lt;br /&gt;5.3.1 m (lowercase)&lt;br /&gt;Gives you a list of commands supported by the server, number of times they've been used, and the bytes consumed by the command.&lt;br /&gt;For commands that havn’t been used, type /raw help&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;PRIVMSG 4752355 184344091&lt;br /&gt;NICK 848063 49075863&lt;br /&gt;QUIT 580331 17961034&lt;br /&gt;[...]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;Sending a PRIVMSG between servers. Toma2 speaking in #SoupConspiracy. Everything before PRIVMSG is prefix&lt;br /&gt;:Toma2!MisterL@ppp54.conspir.gov PRIVMSG #SoupConspiracy :The Soup has arrived&lt;br /&gt;For more information about Privmsg, read the IRC RFC, (currently RFC1459) or try out the /debug command in mIRC.&lt;br /&gt;&lt;br /&gt;It’s hard to guess the average message-lenght. PRIVMSG, as you can see, consists of much more than the actual msg, but combined with the number of users and the t, p and l-query, we might guess out how much people talk and if a servers' users tend to talk to each other mostly, or is chatting around "out there", because a long prefix is only added while sending outside the server.&lt;br /&gt;&lt;br /&gt;You may also use /quote help (4.2.4) to list available commands&lt;br /&gt;5.3.2 l&lt;br /&gt;Shows a table with server-server connections and some people in the act of logging in.&lt;br /&gt;&lt;br /&gt;Sample:&lt;br /&gt;Connection SendQ SendM SendKBytes RcveM RcveKBytes Open since&lt;br /&gt;baltimore-r.md.us.undernet.org 121 166840 6592 1043968 49922 000004536&lt;br /&gt;0 1 0 2 0 000000002&lt;br /&gt;0 2 0 3 0 000000025&lt;br /&gt;NickJagger 0 1 0 2 0 000000009&lt;br /&gt;&lt;br /&gt;The 2nd line is a server-server connection, the 3 last are people logging in. (USER and PONG havn’t been carried out yet)&lt;br /&gt;ircu previous to 2.10.08 would also show statistics for the ports on your server:&lt;br /&gt;[...]&lt;br /&gt;SanDiego.CA.US.Undernet.org[*.6666] 0 7809826 743927 998848 45499 001529427&lt;br /&gt;SanDiego.CA.US.Undernet.org[*.6667] 0 287381731 24655221 30384980 1297028 001529427&lt;br /&gt;[...]&lt;br /&gt;The 2. line would be the sum for all ports. You can get much of the same info from /stats p (5.3.3)&lt;br /&gt;On even older ircu, port 6667 wasn’t shown, but you could easily find its values when you subtracted the other ports from the sum.&lt;br /&gt;&lt;br /&gt;Explanation:&lt;br /&gt;Send M/Q&lt;br /&gt; Sent/Qued messages&lt;br /&gt;Send/Rcve M&lt;br /&gt; Sent/Received messages&lt;br /&gt;Send/Rcve KBytes&lt;br /&gt; Kilobytes sent/received&lt;br /&gt;Open since&lt;br /&gt; Number of seconds it has been open. The other numbers are counted from this moment.&lt;br /&gt;&lt;br /&gt;5.3.3 p&lt;br /&gt;Show you the ports this server accepts connections on, and how many is on each. A must when choosing ports :-)&lt;br /&gt;&lt;br /&gt;Sample:&lt;br /&gt;[...]&lt;br /&gt;P 6670 8 C active&lt;br /&gt;P 6669 41 C active&lt;br /&gt;P 6668 148 C active&lt;br /&gt;P 6667 354 C active&lt;br /&gt;P 6666 25 C active&lt;br /&gt;P 6665 30 C active&lt;br /&gt;P 6664 23 C active&lt;br /&gt;P 6663 30 C active&lt;br /&gt;P 6662 23 C active&lt;br /&gt;P 6661 9 C active&lt;br /&gt;P 6660 227 C active&lt;br /&gt;P 31337 0 C active&lt;br /&gt;P 7777 144 C active&lt;br /&gt;P 7000 113 C active&lt;br /&gt;P 4000 0 S active&lt;br /&gt;P 1025 0 C active&lt;br /&gt;P 10321 0 C active&lt;br /&gt;&lt;br /&gt;C = open for users.&lt;br /&gt;S = open for server-server connections only.&lt;br /&gt;&lt;br /&gt;This servers MOTD said ports 6660 to 6670 were open for users. In addition, mIRC lists port 6668, 7000 and 7777 as valid ports for this server. 6667 is the standard IRC port. Sure lagging against the server isn’t a big problem usually, but it’s something appealing about the luxury of having a port all by yourself. :-)&lt;br /&gt;&lt;br /&gt;From ircu2.10.10 there’s an option for hiding a port from this listing, so don’t be suprised if the admin keeps the good ports to himself. Ports can also be reserved to ops by setting password on them. (Port 31337 in this example rings a bell?)&lt;br /&gt;&lt;br /&gt;stats p can be done remotely:&lt;br /&gt;/stats p servername [mask] will return the 3 first matching ports, or 3 first if no mask.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5.3.4 t (lowercase)&lt;br /&gt;Various statistics about the server.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;accepts 1622557 refused 1590021&lt;br /&gt;unknown commands 17031 prefixes 84&lt;br /&gt;wrong direction 54 empty 660&lt;br /&gt;Client Server&lt;br /&gt;connected 28292 4&lt;br /&gt;bytes sent 2425789.450K 423214.786K&lt;br /&gt;bytes recv 189255.273K 506019.371K&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5.3.5 z&lt;br /&gt;shows memory usage and count data structures. What it means to us: More statistics! :-D And many of these are global statistics too. Here you can count how many is set away, number of bans, number of users in whowas-buffer e.t.c. The format is “number(bytes used)”&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;Client Local 284(260144) Remote 14619(2865324)&lt;br /&gt;Users 14858(1664320) Invites 7(140)&lt;br /&gt;User channels 31169(623380) Aways 1042(46145)&lt;br /&gt;Attached confs 285(5700)&lt;br /&gt;Conflines 598(40307)&lt;br /&gt;Classes 9(252)&lt;br /&gt;Channels 9661(2451957) Bans 9990(428434)&lt;br /&gt;Channel membrs 31169(623380) invite 7(140)&lt;br /&gt;Whowas users 810(90720) away 11(489)&lt;br /&gt;Whowas array 1000(80000)&lt;br /&gt;Hash: client 26669(106676) chan 16001(64004)&lt;br /&gt;Dbuf blocks 426(867336)&lt;br /&gt;RES table 4096&lt;br /&gt;Structs 81920 IP storage 24624 Name storage 55151&lt;br /&gt;Total: ww 171209 ch 3503911 cl 5465153 co 40307 db 867336&lt;br /&gt;End of /STATS report&lt;br /&gt;&lt;br /&gt;Output from /lusers at the same time:&lt;br /&gt;There are 7932 users and 6926 invisible on 42 servers&lt;br /&gt;30 operator(s) online&lt;br /&gt;9661 channels formed&lt;br /&gt;I have 274 clients and 1 servers&lt;br /&gt;&lt;br /&gt;Explanation for the statistics:&lt;br /&gt;If you summarize local and remote clients, you get 42 more than the number of users. This is due to the server-server connections beeing counted as clients, but not as users. Conflines and attached confs are configuration lines. the nine classes-lines are the ones retrived with the y-query.&lt;br /&gt;&lt;br /&gt;away-messages:&lt;br /&gt;The example above says 1042 people is marked as away, but note that this is slightly misleading, as away-messages isn't exchanged during a rejoin after a netsplit. (Not up to and counting ver 2.10.10 atleast). So sometimes, to find a persons away-message, you need to direct the whois-query to his server, 2.6.&lt;br /&gt;&lt;br /&gt;User channels and Channel members:&lt;br /&gt;This is about datastructures, or relations between channel and user.&lt;br /&gt;&lt;br /&gt;An example:&lt;br /&gt;You have two users, Nat and Tim. Nat is on channel #a and #b, Tim beeing only on #b. This gives us three user-channel "relations":&lt;br /&gt;"Nat on #a", "Nat on #b" and "Tim on #b". You could also say that the number is the sum of occurences of "user X on channel Y".&lt;br /&gt;These relations are contained in two separate lists, the "User channels" beeing a list of channels the user is on and "Channel members" constituting a list of users the chan has.&lt;br /&gt;Simplified, the lists might be like this:&lt;br /&gt;User channels list: Channel Members list:&lt;br /&gt;NAT #a (Nats' relations) #a NAT (The relations of channel a)&lt;br /&gt;NAT #b #b TIM (The relations of channel b)&lt;br /&gt;TIM #b (Tims') #b NAT&lt;br /&gt;&lt;br /&gt;sum: 3 sum: 3&lt;br /&gt;The sum should usually be the same for both.&lt;br /&gt;The lists are used to "channel" data between the users, hence the name channels.&lt;br /&gt;NAT says something in #b, "User channels" verifies she can speak there, the server looks in the "Channel Members" list, sees that TIM is also on #b and channel what NAT said over to TIM.&lt;br /&gt;(I suppose that data like "#b is a secret channel, has this and that topic" is kept in a separate list, and not copied for every member of it, and ditto for the modes of a nick.)&lt;br /&gt;&lt;br /&gt;Fun with statistics:&lt;br /&gt;We have 14858 users, 9661 channels and 31169 occurences in each list&lt;br /&gt;This tell us that each user is on average on 2.1 channels at the same time (31169/14858 = 2.1) and that each channel has on average 3.2 users. (31169/9661 = 3.2)&lt;br /&gt;&lt;br /&gt;(Yes, the numbers can be different. Imagine an extreme case of a net with thousand channels and 2 users, where one of them has joined all channels, the other is on none. You get “on average there is 1 person on each channel” and “on average a person is on 500 channels”)&lt;br /&gt;&lt;br /&gt;5.3.6 w&lt;br /&gt;Access statistics from main served domain.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;-Oslo-R.NO.EU.Undernet.org- Minute Hour Day Yest. YYest. Userload for:&lt;br /&gt;-Oslo-R.NO.EU.Undernet.org- 6.00 6.0 7 0 0 sol.no clients&lt;br /&gt;-Oslo-R.NO.EU.Undernet.org- 565.91 610.3 675 0 0 total clients&lt;br /&gt;-Oslo-R.NO.EU.Undernet.org- 500.36 534.8 640 0 0 total connections&lt;br /&gt;&lt;br /&gt;This server is run by the sol company, so they like to keep some statistics about their own users.&lt;br /&gt;&lt;br /&gt;5.3.7 M (uppercase)&lt;br /&gt;Various memory-leak statistics.&lt;br /&gt;5.3.8 r and x&lt;br /&gt;Two queries available when the server is in DEBUGMODE. r shows resource usage reports, x shows usage of lists&lt;br /&gt;Not to be confused with R-lines which ircu does not support.&lt;br /&gt;&lt;br /&gt;5.3.9 u (lowercase)&lt;br /&gt;Telling you how long the server has been up (since last reboot)&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;Server Up 1 days, 7:09:21&lt;br /&gt;Highest connection count: 1087 (1085 clients)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-6685274262082764233?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/6685274262082764233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=6685274262082764233' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/6685274262082764233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/6685274262082764233'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/5-stats-query-for-retrieving-various.html' title='5 STATS. Query for retrieving various data and statistics'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-4983571564036551259</id><published>2008-03-21T23:08:00.001-07:00</published><updated>2008-04-01T10:04:00.277-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>4 The net</title><content type='html'>4 The net&lt;br /&gt;4.1 Network structure and overview&lt;br /&gt;4.1.1 lusers&lt;br /&gt;/lusers lists basic global and local info.&lt;br /&gt;Example:&lt;br /&gt;There are 9450 users and 8163 invisible on 44 servers&lt;br /&gt;37 operator(s) online&lt;br /&gt;2 unknown connection(s)&lt;br /&gt;10025 channels formed&lt;br /&gt;I have 692 clients and 2 servers&lt;br /&gt;&lt;br /&gt;The first line should be read as 9450 visible and 8163 invisible, making a total of 17613 users online.&lt;br /&gt;The number of operators includes local ops that won't show up in /who 0 o and invisible ops.&lt;br /&gt;You may filter /lusers by servername:&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;/lusers sandiego.ca.us.undernet.org (when beeing on sandiego) could return:&lt;br /&gt;There are 301 users and 391 invisible on 2 servers&lt;br /&gt;[...] I have 692 clients and 2 servers&lt;br /&gt;/lusers *.no.eu.Undernet.org when beeing on sandiego could return:&lt;br /&gt;There are 355 users and 237 invisible on 1 servers&lt;br /&gt;[...] I have 0 clients and 0 servers&lt;br /&gt;Meaning 355+237 users on the 1 *.no.eu.undernet.org server currently online. Ofcourse none of those users is then on the sandiego server, hence "I have 0 clients".&lt;br /&gt;/lusers *.eu.undernet.org or just *.eu.* shows the total number of european users.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.1.2 map&lt;br /&gt;An ircu-only command that gives a nice view of how the servers is connected to each other. Blocked on Undernet&lt;br /&gt;Syntax: /map&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;Part of the net as seen from Oslo-R:&lt;br /&gt;P:Oslo-R.NO.EU.Undernet.org (0s) [2050 clients]&lt;br /&gt;|-Y:Oslo1.NO.EU.Undernet.org (5s) [875 clients]&lt;br /&gt;`-F:Gothenburg.Se.Eu.Undernet.org (0s) [4 clients]&lt;br /&gt;|-Q:Amsterdam-R.NL.EU.Undernet.org (57962s) [1 clients]&lt;br /&gt;|-7:Graz.AT.EU.Undernet.org (1s) [2535 clients]&lt;br /&gt;|-D:Caen.FR.EU.Undernet.org (3s) [921 clients]&lt;br /&gt;`-O:Flanders.BE.EU.Undernet.org (0s) [1710 clients]&lt;br /&gt;`-AN:Brussels.Be.Eu.Undernet.org (4s) [40 clients]&lt;br /&gt;&lt;br /&gt;Same part of the net as seen from Caen:&lt;br /&gt;D:Caen.Fr.Eu.UnderNet.org (0s) [924 clients]&lt;br /&gt;`-F:Gothenburg.Se.Eu.Undernet.org (0s) [4 clients]&lt;br /&gt;|-Q:Amsterdam-R.NL.EU.Undernet.org (57959s) [1 clients]&lt;br /&gt;|-7:Graz.AT.EU.Undernet.org (12s) [2764 clients]&lt;br /&gt;|-O:Flanders.BE.EU.Undernet.org (0s) [1704 clients]&lt;br /&gt;| `-AN:Brussels.Be.Eu.Undernet.org (1s) [39 clients]&lt;br /&gt;`-P:Oslo-R.NO.EU.Undernet.org (0s) [2051 clients]&lt;br /&gt;`-Y:Oslo1.NO.EU.Undernet.org (0s) [873 clients]&lt;br /&gt;&lt;br /&gt;Oslo1 is connected to Oslo-R, lulea is connected to Oslo-R and Amsterdam. e.t.c&lt;br /&gt;It is possible for a server to be configured so that it won’t show up on /map.&lt;br /&gt;The letters before the servername correspond to numeric nicks in the server-server protocol, and dosn’t tell us anything worthwile. That however does the ping-time and the number of clients following the servername!&lt;br /&gt;&lt;br /&gt;Notice the tree structure. There is only one path between two given servers and no loops. Those with more than one connection to other servers are called hubs, the others leafs. The tree is a fundamental property of irc networks as we know them. It makes them less robust then the internet it's on top of but is advantageous for propagating messages. other structures may be more robust and but we risk loosing the common "world" in which all users and channels reside, and then we may as well sit around in our own private microsoft network-chatrooms. (http://www.msn.com/) For a discussion of the disadvantages of the tree or star topology, see http://www.newnet.net/nnmeshed.html.&lt;br /&gt;&lt;br /&gt;4.1.3 links&lt;br /&gt;LINKS displays the same information as map, but in another format, and with extra sauce.. uhm extra data! LINKS is a common IRC-command. The server mask option can sort out hosts like *.eu.undernet.org (all european hosts) Blocked on Undernet&lt;br /&gt;Syntax:&lt;br /&gt;/LINKS [[&lt;remote server&gt;] &lt;server mask&gt;]&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;/LINKS *.nl.eu.undernet.org displays every server in Netherland.&lt;br /&gt;&lt;br /&gt;An output of /LINKS in mIRC might look like this:&lt;br /&gt;SanDiego.CA.US.Undernet.org (0) P10 CONNECTnet UUnet/MCI server&lt;br /&gt;Dallas-R.Tx.US.Undernet.org (1) P10 Dallas Undernet Hub&lt;br /&gt;Dallas.Tx.US.Undernet.org (2) P10 [127.0.0.1] Dallas Metroplex IRC Client Server&lt;br /&gt;Los-Angeles-R.CA.US.Undernet.Org (2) P10 [198.245.27.2] Internet Chat Systems IRC Server&lt;br /&gt;los-angeles.ca.us.undernet.org (3) P10 [198.245.24.80] Decade Communications IRC Server&lt;br /&gt;Uworld.undernet.org (3) P9 [198.245.24.240] Cordinator&lt;br /&gt;auckland.nz.undernet.org (3) P10 [202.14.100.6] Internet Company of New Zealand&lt;br /&gt;protocol.undernet.org (3) P10 [198.245.24.190] [protocol.undernet.org] Software&lt;br /&gt;Chicago-R.IL.US.Undernet.org (2) P10 [206.54.224.160] Nap Net Chicago IRC Hub&lt;br /&gt;ann-arbor.mi.us.undernet.org (3) P10 [irc.cic.net] "Use the source, luke"&lt;br /&gt;&lt;br /&gt;The number in parenthesis is the hopcount, P10 is the current server-server protocol and Sandiego was the server that replied to LINKS. The tree-structure is depicted by preceding spaces, probably making links output easier to handle for a script than maps’ output. (4.1.2)&lt;br /&gt;&lt;br /&gt;4.1.4 list, with extensions&lt;br /&gt;Syntax: /LIST gives you a list of the channels on the net and let your client to the filtering&lt;br /&gt;Ircu has implemented an extended list-command that let you filter in ways the built-in lister in mIRC and other clients won’t let you. Help for this command is brought up with "/raw list help" and I quote:&lt;br /&gt;&lt;br /&gt;Usage: /QUOTE LIST parameters&lt;br /&gt;Where parameters is a space or comma seperated list of one or more of:&lt;br /&gt;&lt;max_users ; Show all channels with less than max_users.&lt;br /&gt;&gt;min_users ; Show all channels with more than min_users.&lt;br /&gt;C&lt;max_minutes ; Channels that exist less than max_minutes.&lt;br /&gt;C&gt;min_minutes ; Channels that exist more than min_minutes.&lt;br /&gt;T&lt;max_minutes ; Channels with a topic last set less than max_minutes ago.&lt;br /&gt;T&gt;min_minutes ; Channels with a topic last set more than min_minutes ago.&lt;br /&gt;Example: LIST &lt;3,&gt;1,C&lt;10,T&gt;0 ; 2 users, younger than 10 min., topic set.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;/raw list &gt;20,C&gt;120 will bring up channels that have existed more than 2 hours and has more than 20 users. When it's finished, you would in mIRC rightclick in "channels", apply match and hide parameters, and press "apply". We see that ircu does not support filtering on channelnames or topics, that is a purely client-side feature.&lt;br /&gt;&lt;br /&gt;u2.10.11.rc.1 and above supports "/list stop". This aborts a listing in progress. "/raw /list" while listing will have the same effect.&lt;br /&gt;&lt;br /&gt;4.1.5 trace&lt;br /&gt;&lt;br /&gt;With parameter:&lt;br /&gt;/TRACE nick is used to look at the path between you and another nick.&lt;br /&gt;&lt;br /&gt;Example: Beeing on the Oslo-server, typing "/trace Concord":&lt;br /&gt;Link u2.10.00.bans3 Concord lulea-r.se.eu.undernet.org&lt;br /&gt;Link u2.10.00.bans3 Concord Amsterdam.NL.EU.undernet.org&lt;br /&gt;Link u2.10.00 Concord Regensburg.DE.EU.undernet.org&lt;br /&gt;Link u2.10.00 Concord Baltimore-R.MD.US.Undernet.Org&lt;br /&gt;Link u2.10.00 Concord Chicago-R.IL.US.Undernet.org&lt;br /&gt;Link u2.10.00 Concord ann-arbor.mi.us.undernet.org&lt;br /&gt;User 5 Concord[quail-2.slip.uinb.edu] 18&lt;br /&gt;&lt;br /&gt;What it shows is that a message from me to Concord has to go through 6 server-server connections, before getting to his server. (giving hopcount=6) The last line tells he's in class 5 on his server, and beeing idle 18 seconds. (u2.10.00 is the servers’ ircu-version)&lt;br /&gt;Compare with the "/who Concord" reply: "Concord H conc@quail-3.slip.uinb.edu :6 Cristopher Watson" :6 means he have a hopcount of 6, relative to you.&lt;br /&gt;&lt;br /&gt;Note that each line is sent from its respective server and this is a great way to hunt down where the lag in a connection between you and your friend is. Say if the Regensburg line is shown, and it takes a long time before the Baltimore line is printed, it means the connection between Regensburg and Baltimore is lagged. Then you consult /map (4.1.2) to find a server away from the Regensburg-Baltimore link. If this dosn’t turn up the lag, it could be sitting between him and his server, in case the difference between a “/whois nick nick” (2.6) and a ping would give you his lag.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Without parameter:&lt;br /&gt;&lt;br /&gt;Typing /trace with no parameter will give you something on the form:&lt;br /&gt;Serv &lt;class&gt; &lt;nS&gt; &lt;nC&gt; &lt;name&gt; &lt;ConnBy&gt; &lt;last&gt; &lt;age&gt;&lt;br /&gt;Possibly displayed on more than one line.&lt;br /&gt;&lt;br /&gt;Where:&lt;br /&gt;class&lt;br /&gt; Class the server is in&lt;br /&gt;nS&lt;br /&gt; Number of servers reached via this link&lt;br /&gt;nC&lt;br /&gt; Number of clients reached via this link&lt;br /&gt;name&lt;br /&gt; Name of the server linked&lt;br /&gt;ConnBy&lt;br /&gt; Who established this link&lt;br /&gt;last&lt;br /&gt; Seconds since we got something from this link&lt;br /&gt;age&lt;br /&gt; Seconds this link has been alive&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;Beeing on sandiego, the start of the /trace reply look like this:&lt;br /&gt;Serv 10 41S 20227C Dallas-R.Tx.US.Undernet.org[208.145.192.1] *!*@SanDiego.CA.US.Undernet.org 1 250589&lt;br /&gt;&lt;br /&gt;The connection is in connection class 10 (See Y-lines 5.1.5) 41 servers are reachable via this link, resulting in 20227 reachable clients.&lt;br /&gt;The link is to Dallas and was established by Sandiego itself. It’s 1 second since we heard from the server and the link has been active for 250589 seconds. (About 3 days)&lt;br /&gt;&lt;br /&gt;The rest of the output will be likewise lines for other server-server connections (if any) possibly followed by&lt;br /&gt;lines identifying operators. (Oper 1001 TNTgal[some.address.here] 6, would mean operator TNTgal in class 1001 idle 6 secs)&lt;br /&gt;Buggy as it may be, people in the action of logging in on the server shows up too.&lt;br /&gt;The latter part of the /trace output may seem awkward, but it helps to know that an operator typing /trace would list all people on his server, we’re just watching the censored edition.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.2 Specific server&lt;br /&gt;4.2.1 motd&lt;br /&gt;Brings up your servers' "Message Of The Day". (The text you get each time you log in) As of ircu2.10.05, the server could be configured not to send the MOTD by startup, but who wouldn’t want to?&lt;br /&gt;"/motd fullservername" brings you the MOTD of a remote server. On Undernet, there is supposed to be a small MOTD&lt;br /&gt;on every server that is sent when it receives a remote MOTD-query. This is done to preserve bandwidth.&lt;br /&gt;It’s easy to show different MOTD to different people according to their address. For instance one in the native language. In ircu2.10 you may also do this according to their connection class (5.1.5)&lt;br /&gt;&lt;br /&gt;4.2.2 time&lt;br /&gt;Shows the time, according to the servers' clock, and hours away from GMT&lt;br /&gt;Syntax: /time [servername if remote]&lt;br /&gt;Example: Thursday July 27 2000 -- 17:57 -06:00&lt;br /&gt;This server is located 6 hours behind GMT. If you debug, you’ll find that the server also sends a line with a number in the unixtime format. as mentioned in stats-g (5.1.2) This isn’t displayed in mIRC. If your machines’ timezone setting is correct, your script could use that line to calibrate your systemclock.&lt;br /&gt;4.2.3 admin&lt;br /&gt;Returns administrative info.&lt;br /&gt;Syntax:&lt;br /&gt;/admin &lt;servername&gt; or just /admin for your own irc-server.&lt;br /&gt;It could be used with wildcards, but returns only first matching server.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;Administrative info about London.UK.eu.Undernet.org&lt;br /&gt;Aladdin Internet's IRC server&lt;br /&gt;Undernet IRC Server&lt;br /&gt;sam@salabim.co.uk&lt;br /&gt;&lt;br /&gt;4.2.4 help&lt;br /&gt;Syntax: /raw help&lt;br /&gt;This sends "HELP" to the server, giving a list of commands it will understand.&lt;br /&gt;See 4.1.4 for /raw list help&lt;br /&gt;&lt;br /&gt;4.2.5 info&lt;br /&gt;Version and copyright info, along with credits to those who have contributed to the coding of the IRC-software.&lt;br /&gt;/INFO server is disallowed but it's the same on all servers anyway.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.2.6 version&lt;br /&gt;Returns the version of the serversoftware running. Use /version servername for remote queries.&lt;br /&gt;It can include wildcards, but returns only first matching. Makes for a shorter command. E.g /version london*.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;u2.10.10.09. SanDiego.CA.US.Undernet.org B9eEFfIKlMOopStUW&lt;br /&gt;This one is running ircu version 2.10.10.09 The letters at the end is its server-options. (4.2.7)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.2.7 Decoding serveroptions in "version"&lt;br /&gt;Serveroptions are those letters at the end of a version-reply. They indicate various settings. Few of them affects us, but it’s nice to know what they mean, isn’t it? :-)&lt;br /&gt;&lt;br /&gt;Terms used&lt;br /&gt;An IRC-operator can be set to two levels, with the modes FLAG_OPER or FLAG_LOCOP set. You can spot an OPER by the uppercase O in the /stats o (5.1.4) reply, and a LOCOP by the lowercase. A LOCOP dosn't get his mode propagated to other servers and so is not seen by the rest of the net as an operator and therefore cannot act on clients connected to other servers, e.g killing.&lt;br /&gt;Local clients is both users and the connection to a nearby server in the net.&lt;br /&gt;I will use the terms OPER and LOCOP so as not to confuse with "local operator" which could mean any operator stationed on your irc-server. The term "remote operator" in this guide means an OPER on a server other than yours.&lt;br /&gt;&lt;br /&gt;Valid Serveroptions in ircu2.10.11&lt;br /&gt;A&lt;br /&gt; Assertion checks enabled&lt;br /&gt;B or b&lt;br /&gt; The size of the bufferpool.&lt;br /&gt;C&lt;br /&gt; CMDLINE_CONFIG is defined&lt;br /&gt;D&lt;br /&gt; DEBUGMODE is defined&lt;br /&gt;e&lt;br /&gt; LOCOPS can use /REHASH&lt;br /&gt;E&lt;br /&gt; Opers can use /REHASH&lt;br /&gt;f&lt;br /&gt; Operators can set modes on local channels&lt;br /&gt;F&lt;br /&gt; Operators bypass the no. of channels limit&lt;br /&gt;H&lt;br /&gt; HUB is defined&lt;br /&gt;i&lt;br /&gt; Show operators invisible users local to the server&lt;br /&gt;I&lt;br /&gt; Show OPERS all invisible users.&lt;br /&gt;k&lt;br /&gt; Opers can use /KILL on local clients.&lt;br /&gt;K&lt;br /&gt; Opers can use /KILL on any client&lt;br /&gt;l&lt;br /&gt; Operators can walk through modes on local channels&lt;br /&gt;M&lt;br /&gt; IDLE_FROM_MSG is defined&lt;br /&gt;O&lt;br /&gt; server has defined USEONE&lt;br /&gt;p&lt;br /&gt; Oper passwords are crypted&lt;br /&gt;P&lt;br /&gt; Link paswords are crypted&lt;br /&gt;Q&lt;br /&gt; /stats M works&lt;br /&gt;q&lt;br /&gt; Server does memory allocation/dealloation checks&lt;br /&gt;R&lt;br /&gt; RELIABLE_CLOCK is defined&lt;br /&gt;s&lt;br /&gt; LOCOPS can use /RESTART&lt;br /&gt;S&lt;br /&gt; Opers can use /RESTART&lt;br /&gt;t&lt;br /&gt; OPER_REMOTE is defined&lt;br /&gt;U&lt;br /&gt; Server uses poll()&lt;br /&gt;v&lt;br /&gt; VIRTUAL_HOST is defined&lt;br /&gt;W&lt;br /&gt; BADCHAN is enabled&lt;br /&gt;x&lt;br /&gt; local BADCHAN is enabled&lt;br /&gt;Y&lt;br /&gt; Server uses syslog()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The meaning of the letters&lt;br /&gt;&lt;br /&gt;When followed by [OUTDATED], it means ircu has thrown the setting overboard. It is kept here as a reference for other networks.&lt;br /&gt;&lt;br /&gt;Assertion checks enabled A&lt;br /&gt;&lt;br /&gt;Bufferpool b/B&lt;br /&gt;If BUFFERPOOL is less than a million bytes, you get b. If it’s more, B is used.&lt;br /&gt;After that, it divides the number so that only the two first digits are shown.&lt;br /&gt;&lt;br /&gt;For nets with older ircu, here’s how it was done prior to ircu2.10.7:&lt;br /&gt;---------[OUTDATED]-------------------------&lt;br /&gt;MAXSENDQLENGTH M[0-9&gt;][0-9]&lt;br /&gt;Specifying 0.1Mb up to 9.9Mb of MAXSENDQLENGTH, shown as "&gt;" when larger than 9.9Mb Default value of the "max senq. lenght" in Y: lines (5.1.5) and used for deciding RAM-allocation.&lt;br /&gt;&lt;br /&gt;INT_BUFFERPOOL B[0-9&gt;]&lt;br /&gt;The digit represents BUFFERPOOL/MAXSENDQLENGTH and represented by "&gt;" when larger than 9.&lt;br /&gt;BUFFERPOOL = Max RAM-size of all the sendqueues, all in all.&lt;br /&gt;&lt;br /&gt;MAXSENDQLENGHT defines the max-size of each sendqueue, and INT_BUFFERPOOL a number to multiply, giving BUFFERPOOL which is how much ram is reserved for ALL the queues.&lt;br /&gt;In our example, the version-reply says "M10B8". Which gives MAXSENDQLENGTH a value of 1.0Mb and INT_BUFFERPOOL 8. INT_BUFFERPOOL * MAXSENDQLENGHT = BUFFERPOOL&lt;br /&gt;8 * 1.0Mb = 8Mb&lt;br /&gt;&lt;br /&gt;It is only a multiplier for the RAM allocation, it dosn’t tell us that there’s exactly 8 queues, but it tells the max of one single queue.&lt;br /&gt;See "/stats l" (5.3.2) for a queue&lt;br /&gt;&lt;br /&gt;For the sourcecode sniffers: INT_BUFFERPOOL is gone, BUFFERPOOL is independent and MAXSENDQLENGTH is renamed to DEFAULTMAXSENDQLENGTH in present ircu.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Chrootdir c [OUTDATED]&lt;br /&gt;Server using Chroot(). Added security if running under root. All files accessed must be in directory defined as DPATH.&lt;br /&gt;Standard: Not set.&lt;br /&gt;&lt;br /&gt;cmdline_config C&lt;br /&gt;allow config-file to be specified on command line. (when running the server)&lt;br /&gt;Standard: Undefined&lt;br /&gt;&lt;br /&gt;Do_id d [OUTDATED]&lt;br /&gt;Maybe a "server using identd" setting. Not used in ircu anymore, but lingers on in the /version code.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Debugmode D&lt;br /&gt;when having problems, the software is recompiled with this one defined. You’r unlikely to get on a server in debugmode.&lt;br /&gt;Standard: Not set.&lt;br /&gt;&lt;br /&gt;Oper_rehash E (y)&lt;br /&gt;Locop_rehash e (y)&lt;br /&gt;If locop_rehash are set, locops are allowed to execute the REHASH command. If only Oper_rehash are set, only Opers are allowed to do it. (This command can never be done remotely). E and e could be set both at the same time)&lt;br /&gt;&lt;br /&gt;OPER_MODE_LCHAN f (y)&lt;br /&gt;Allow operators to set modes on local channels (3.2)&lt;br /&gt;&lt;br /&gt;OPER_NO_CHAN_LIMIT F (y)&lt;br /&gt;Allow operators to bypass the maximum no. of channels allowed for a client.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;HUB H&lt;br /&gt;Set if server is a hub in the network tree&lt;br /&gt;&lt;br /&gt;Show local invisible i (y)&lt;br /&gt;Show all invisible I (y)&lt;br /&gt;&lt;br /&gt;If “i” then operators can see invisible users local to the server. If “I” then OPERs can see invisible users on all servers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OPER_KILL K (y)&lt;br /&gt;Allow operators to KILL (disconnect) users.&lt;br /&gt;&lt;br /&gt;LOCAL_KILL_ONLY k&lt;br /&gt;"k" restricts OPERS to KILL users logged in on their own server.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;With "k" set on sandiego.undernet.org, an OPER on that server is disallowed to kill a nick logged in on chicago.undernet.org. He can only kill users that's using sandiego. On the other hand, the chicago server might have "K" set, allowing their OPERS to kill users anywhere on the net, including sandiego.&lt;br /&gt;Some networks (not Undernet) demand "k" to be set for new servers. If you find the unlikely configuration of no K-letter, it means this servers' operators can't KILL anyone, not even on their own server.&lt;br /&gt;&lt;br /&gt;Since a LOCOP isn't recognized as operator by the other servers, he/she could never do a remote KILL anyway.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OPER_WALK_THROUGH_LMODES l (n)&lt;br /&gt;&lt;br /&gt;let operators walk through modes on local channels&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note: in previous versions, l meant “server checks for clones”, with a number following, indicating how many connections from the same IP were allowed. see chapter 7 and the I-lines (5.1.3)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Least_idle L [OUTDATED] (but not removed from /version code)&lt;br /&gt;Looks for the least idle person logged in on the server. Used for SUMMON, that can contact people on the same machine as the server. Syntax is /SUMMON &lt;user&gt; [&lt;server&gt;] but i assume it’s operator-only and long gone from any net.&lt;br /&gt;&lt;br /&gt;m4_preproc m [OUTDATED]&lt;br /&gt;The server reads its configuration file via another program, instead of reading it directly.&lt;br /&gt;Standard: Not set.&lt;br /&gt;&lt;br /&gt;Idle_from_msg M&lt;br /&gt;Idle-time is nullified only from privmsg. (/msg and channelchatting) If not set, all but the serverping (PING? PONG!) will reset your idle-time. /notice isn't a privmsg.&lt;br /&gt;Standard: Set.&lt;br /&gt;Also see "Getting seconds idle" (2.6)&lt;br /&gt;&lt;br /&gt;NO_OPER_DEOP_LCHAN o (n)&lt;br /&gt;Prevent operators from beeing kicked or deoped on local channels.&lt;br /&gt;&lt;br /&gt;USEONE O [OUTDATED]&lt;br /&gt;The syntax in the I-lines (5.1.3) were changed in ircu2.10.05, removing the use of the token “ONE”.&lt;br /&gt;With USEONE defined, the server admin can keep using “ONE” in the configuration, though it’s not recommended.&lt;br /&gt;&lt;br /&gt;Npath N [OUTDATED]&lt;br /&gt;NPATH is a variable containing the path to a backup file for NOTE, a utility that’s not around anymore.&lt;br /&gt;&lt;br /&gt;Crypt_oper_password p&lt;br /&gt;&lt;br /&gt;Oper passwords are encrypted&lt;br /&gt;&lt;br /&gt;Standard: set&lt;br /&gt;&lt;br /&gt;crypt_link_password P&lt;br /&gt;Link passwords are encrypted (C-lines)&lt;br /&gt;Standard: not set&lt;br /&gt;&lt;br /&gt;Passwords are encrypted with makpasswd in UNIX (as used in the unix "passwd." file) They are stored in the O and C lines, but won't be visible when you say, do a "/stats O"&lt;br /&gt;&lt;br /&gt;DEBUGMALLOC q&lt;br /&gt;&lt;br /&gt;Server does Memory allocation/deallocation checks. This is a kind of "memory book-keeping".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MEMLEAKSTATS Q&lt;br /&gt;when both DEBUGMALLOC and MEMLEAKSTATS is set, we’ll get "Q" and /stats M (5.3.7) will be working.&lt;br /&gt;&lt;br /&gt;RELIABLE_CLOCK R&lt;br /&gt;The admin sees the machine's clock as reliable and ircu is asuming he's right.&lt;br /&gt;&lt;br /&gt;Oper_restart S (y)&lt;br /&gt;Locop_Restart s&lt;br /&gt;Allow local OPERS and/or LOCOPS to restart the server. Setting S restricts the command to OPERS. RESTART could never be done remotely. S/s is the same as R/r in older ircu-code. (before 2.10.01) "s" would mean all operators on the server, so a setting of S and s at the same time would be redundant and mean the same as just s.&lt;br /&gt;&lt;br /&gt;Oper_remote t (y)&lt;br /&gt;When set, it allows operators to connect to the server and gain operator status without beeing on "the same network" as the machine running the server, which means an operator could log on from a dialup-account on the internet, like any user.&lt;br /&gt;&lt;br /&gt;IRCII_Kludge u [OUTDATED]&lt;br /&gt;Controls whether or not \n is used to terminate lines.&lt;br /&gt;&lt;br /&gt;Poll() U&lt;br /&gt;Server uses Poll(). It depends on the system the server is running on if it's chosen or not.&lt;br /&gt;&lt;br /&gt;VIRTUAL_HOST v&lt;br /&gt;Turns on some gear that's used when there are two or more servers on the same machine.&lt;br /&gt;Standard: not set&lt;br /&gt;&lt;br /&gt;Valloc V [OUTDATED]&lt;br /&gt;Use the valloc() function, which caused problems on some systems.&lt;br /&gt;Standard: Not set.&lt;br /&gt;&lt;br /&gt;BADCHAN W (y)&lt;br /&gt;Without much ado, Undernet has added the capability of banning a channelname in ircu2.10.10. Technically this is done by stopping people from joining it.&lt;br /&gt;&lt;br /&gt;LOCAL_BADCHAN x (n)&lt;br /&gt;&lt;br /&gt;If this is set, any OPER can ban a channel. If it isn’t set, only uworld can carry out the ban. (x is not allowed on undernet)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Trying to join a badchan’d channel will give you the same error as if you were banned from it. The Badchan should somehow show up in the g-line list.&lt;br /&gt;&lt;br /&gt;The Badchan feature were implemented to block channels used by viruses/trojan horses to communicate with their creator. This relies on a fixed channelname and could thus be easily overcome by the virus-writers. Blocking a channel is accomplished in several other ways not requiring special settings, but this feature may be appreciated in those networks with a policy on allowed channels, a practical impossibility for larger nets.&lt;br /&gt;&lt;br /&gt;Unixport X [OUTDATED]&lt;br /&gt;a variable used to setup a Unix domain socket to connect clients/servers to. Like port 6667 I suppose.&lt;br /&gt;standard: Set.&lt;br /&gt;&lt;br /&gt;Use_syslog Y&lt;br /&gt;Server using syslog(). The server sends "vital" messages about the server through syslog. Things like system errors and events critical to the server beeing logged.&lt;br /&gt;Standard: Not set.&lt;br /&gt;&lt;br /&gt;v28PlusOnly 8 [OUTDATED]&lt;br /&gt;Means the net has only 2.8 or higher server versions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-4983571564036551259?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/4983571564036551259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=4983571564036551259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/4983571564036551259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/4983571564036551259'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/4-net.html' title='4 The net'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-5137120052452109912</id><published>2008-03-21T23:06:00.000-07:00</published><updated>2008-04-01T10:04:00.278-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>3 Channels</title><content type='html'>3 Channels&lt;br /&gt;3.1 join&lt;br /&gt;Syntax: /join #channel1, #channel2, ... or /join channel key.&lt;br /&gt;Separated with a comma, you can join several channels at once, saving you some typing. (But if you want to save typing, perhaps IRC isn’t the right place? :-) On Undernet, you’r limited to beeing on 10 channels at the same time. (See 7 for the limit on your net)&lt;br /&gt;See 6.9 for allowed characters in a channelname and 3.5.1 for keys. The maximum lenght of a channel is 89 characters plus the #.&lt;br /&gt;3.2 Local channels&lt;br /&gt;A channel with the "&amp;" prefix instead of “#” (e.g &amp;chat) is a channel that is local to your server. People from other IRC-servers can't join, can’t find it in the channel-listing and can't spot you'r in it, unless they retrieve a remote whois. (2.6)&lt;br /&gt;This feature might have been usefull when a server served a geographically limited userbase exclusively, for instance a specific university, but today you can connect to most servers in a net regardless of where you are. Operators on a server might stick around in a &amp;channel, since LOCOPS and OPERS have equal powers over it, (see 4.2.7) and operators can toy around with the channel directly while the ability to toy with global channels would have messed up the security. There, they have to go through Uworld. (A service on Undernet) Don’t be surprised if this feature disappears one bright day in the middle of the night. In ircu2.10.11, you can no longer send an invite for a local channel to someone on a remote server. (That makes sense :-)&lt;br /&gt;Prior to ircu2.10.11, there were also a bug making the server propagate the topic of a local channel to other servers. If a local channel with the same name existed on a server directly linked to the first one, there may have been “leaks”, but this is unconfirmed&lt;br /&gt;3.3 The modeless channel. Equality by simplicity&lt;br /&gt;As of ircu2.10.02 you can start a “modeless channel” This is a channel with the prefix “+” instead of #. (e.g +chat)&lt;br /&gt;Such a channel can’t have any channel operators and its mode is always set to +nt.&lt;br /&gt;From this, “no topic”, “no /invite”, “no external messages” and “no bans” logically follows.&lt;br /&gt;&lt;br /&gt;The purpose for this invention is “to create an enviroment where all users are equal and not tempted to fight about ops”. Flooding should be dealt with by either leaving the channel or using /ignore or /silence. (2.12) Making it topic-free and non-invite is to avoid flooding by topic-changing or mass-invite, or any gibbering over what todays topic should be.&lt;br /&gt;&lt;br /&gt;3.4 /part and /quit with comments&lt;br /&gt;You can put a comment along when you quit irc which is visible to fellow channelmembers, with the command /quit, and as of ircu2.10.02 you can send a comment along when you /part a channel too. Perfect for getting the last word! :-)&lt;br /&gt;Syntax:&lt;br /&gt;/quit comment&lt;br /&gt;/part #channel comment or /part #channel1,#channel2, ...&lt;br /&gt;&lt;br /&gt;The maximun lenght of a quit-message is governed by TOPICLEN in chapter 7, and is 160 characters by the time on Undernet.&lt;br /&gt;A part message could be a maximum of 65 letters and truncated with a '...' at the end if it's longer.&lt;br /&gt;When a message to the channel wouldn’t have been allowed to be sent, as in cases of ban or moderated channel,&lt;br /&gt;these message won’t be sent either. See 3.5 (moderated) and 3.7 (ban) for more about this.&lt;br /&gt;&lt;br /&gt;A client-independet way to leave all channels at once is “/join 0”.&lt;br /&gt;&lt;br /&gt;Quitting with a linebreak “//quit char$(13)” drops the parenthesis. u2.10.11.rc.1 does not display them anyway unless a reason has been specified.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.5 Channelmodes&lt;br /&gt;3.5.1 All the modes for a channel&lt;br /&gt;First, a quick summary of the channelmodes:&lt;br /&gt;&lt;br /&gt;syntax: /mode &lt;mode&gt; [parameter]&lt;br /&gt;&lt;br /&gt;b &lt;mask&gt;[&lt;reason&gt;]&lt;br /&gt; To ban someone and display the reason.&lt;br /&gt;o &lt;nick&gt;&lt;br /&gt; To op someone&lt;br /&gt;v nick&lt;br /&gt; Voice someone (Speaks through ban and moderations and get a nice + by their nick)&lt;br /&gt;I&lt;br /&gt; Channel is invite-only&lt;br /&gt;l &lt;limit&gt;&lt;br /&gt; Channel is limited to &lt;limit&gt; participants at the same time&lt;br /&gt;n&lt;br /&gt; No messages/notices is allowed to be sent to the channel from outside.&lt;br /&gt;m&lt;br /&gt; Channel is moderated. Only ops and voiced people can talk.&lt;br /&gt;t&lt;br /&gt; Noone but the ops can change the channeltopic&lt;br /&gt;p&lt;br /&gt; Channel is private&lt;br /&gt;s&lt;br /&gt; Channel is secret&lt;br /&gt;k &lt;key&gt;&lt;br /&gt; Set a password-key (any text) necessary to get into the channel.&lt;br /&gt;r&lt;br /&gt; ACCOUNT-limited channel&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You are probably more than familiar with these already, so I’ll just summarize my comments on them:&lt;br /&gt;&lt;br /&gt;b:&lt;br /&gt; See 3.7 for novel use. The maximum number of simultaneous bans in a channel on Undernet is 30. See MAXBANS in chapter 7 for the limit at your net. You can easily clear a banlist by typing "/mode #channel +b-b *!*@* *!*@* ?"&lt;br /&gt;&lt;br /&gt;Before ircu2.10.11, a nick-ban (e.g slobodan!*@*) wouldn’t take effect if the user changed into the nick inside the channel. Also, a ban did not stop external messages from a banned person from entering a -n channel.&lt;br /&gt;n:&lt;br /&gt; Most channels should set +n to have total control on who's talking in the channel, ircu prior to 2.10.11 let outsiders slip through +m and +b&lt;br /&gt;p and s:&lt;br /&gt; See 3.5.3 for the difference between these two&lt;br /&gt;&lt;br /&gt;m:&lt;br /&gt; "only ops and voiced people can talk". Before ircu2.10.11, +m didn’t stop messages from outside, now +m equals +mn&lt;br /&gt;&lt;br /&gt;As with +b, +m censors your optional /part and /quit comments in the channel. (See 3.7) (ircu specific) and beeing in a +m channel without a voice, “censors” your quitmessage from every other channel your on too.&lt;br /&gt;If that sounds confusing remember you'r quitting the net not just the channel, so sending two quitmessages about you to a person that shared two channels with you (say one +m and one not) would be like saying: "He left the net, and then he left the net again without beeing there." It wouldn't make sense.&lt;br /&gt;&lt;br /&gt;v and o:&lt;br /&gt; You can have voice and op at the same time, but then mIRC and extended /who prior to ircu2.10.11 will only display the op @, not the voice +.&lt;br /&gt;&lt;br /&gt;k:&lt;br /&gt; If you are not a channeloperator, the key will from ircu2.10.10.pl15 be displayed as * when you try to retrieve it from inside the channel.&lt;br /&gt;r&lt;br /&gt; +r on a user, though you can’t see that it’s set, signifies that the user has logged in with his/her account name and password on whatever service the network supports. For instance Undernet’s channelservice “X”.&lt;br /&gt;+r on a channel means it’s restricted to users having usermode +r, that is, beeing registered at the channelservice.&lt;br /&gt;The +r usermode together with a hidden character string persist as long as you’r connected to the IRC server, so that the channel service can recognize you even if your server splits off and rejoins the net. No need to login to X all over again.&lt;br /&gt;&lt;br /&gt;The account name were for a short while visible in /whois, but this were discontinued. It is still easy to receive by “/msg X verify nick” though. A +r channelmode can be overridden with an invite, in fact +r is equivalent to +i if there’s no +r enabled servicebot around. (X were not +r enabled by August 2002, but it’s coming up.)&lt;br /&gt;&lt;br /&gt;3.5.2 /Topic and retrieving channelmodes&lt;br /&gt;These commands retrieve the same info as you get when you doubleclick in the channelwindow.&lt;br /&gt;&lt;br /&gt;/mode #channel Retrieves the modes (Also when it was created when using ircu)&lt;br /&gt;/mode #channel b the bans (Prohibited when you’r outside the channel)&lt;br /&gt;/topic #channel the topic (Prohibited when you’r outside a +s channel)&lt;br /&gt;&lt;br /&gt;What information is available varies from net to net. The channel-limit is shown from ircu2.10.01 and above and topic-retrieval&lt;br /&gt;outside channel is also a fairly recent addition. Now it also displays when the topic were set and by whom&lt;br /&gt;The key is ofcourse not available from outside. If you'r inside the channel, you probably already know the key, but it won't be displayed unless you have op. If not, someone could fetch it by sneaking into a channel during a netsplit. But since the synchronization during a netjoin will remove a channelrider's op, he won't see the key.&lt;br /&gt;&lt;br /&gt;The maximum length of a topic on Undernet is 160 characters, the maximum for your net can be found by the variable TOPICLEN in chapter 7. For the issue of topics and netsplits, see 6.5&lt;br /&gt;&lt;br /&gt;Tip: If you just want to know if a channel exists, please do a /mode #chan, instead of quick join/part visits.&lt;br /&gt;&lt;br /&gt;Note: As of ircu2.10.11, topics beeing set without beeing changed is no longer displayed to the client. It should make the topicsetting of X on Undernet less annoying. It is still done behind the scenes, as topics are not automatically refreshed when the net reconnects after a netsplit.&lt;br /&gt;&lt;br /&gt;3.5.3 Difference between +p and +s&lt;br /&gt;A channel can have +p (private) or +s (secret) mode set. The difference isn't obvious:&lt;br /&gt;&lt;br /&gt;“Secret” means Top Secret. Its existance is secret (not present in any listing), and you beeing in it is secret. (It dosn’t show up in a whois on you and you can’t take a /names #chan on it) As an extra secrery, a wildcard whois won’t return you. (see 2.7.4)&lt;br /&gt;&lt;br /&gt;“Private” means privacy for you. The channel shows up in the channellisting, but people can’t tell you’r in it, unless they’r in the channel themselves.&lt;br /&gt;&lt;br /&gt;p and s are mutually exclusive. Trying to send mode +ps will thus result in +s, +sp will result in +p.&lt;br /&gt;Prior to ircu2.10.10, +s channels could show up in /list on rare occasions. The bug has been fixed from that version.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.6 /invite will find a way&lt;br /&gt;syntax: /invite nick #channel&lt;br /&gt;Invites a person to your channel. It is nessecary to invite the person if the channel is set “invite only” (3.5).&lt;br /&gt;You need to be an op in the chan to do it.&lt;br /&gt;&lt;br /&gt;Applying to ircu2.10 and above:&lt;br /&gt;When you invite a person into a channel, you’r overruling the channel limit and any ban. Give him a voice (+v) and he can speak through the ban too.&lt;br /&gt;&lt;br /&gt;Applying to ircu2.10.10 and above:&lt;br /&gt;Typing /invite with no parameters lists the channels you are currently invited to&lt;br /&gt;&lt;br /&gt;Up until ircu2.10.11, you could invite people into non-existing #channels. The bug has been fixed&lt;br /&gt;3.7 "Shutting their mouth." Powerfull chanops-feature&lt;br /&gt;(Partly ircu specific.)&lt;br /&gt;This feature is IMHO an important one, but not widely known. The feature is as follows:&lt;br /&gt;&lt;br /&gt;If you ban a person in your channel, but dosn't kick him, two things take place:&lt;br /&gt;&lt;br /&gt;1: the nick looses his/her freedom of speech in your channel. The nick can't speak in the channelwindow, and neither do a channel-notice nor a channel-ping. Even the optional /part and /quit comments are censored.&lt;br /&gt;&lt;br /&gt;2: He/she is unable to change nick as long as beeing in your channel. This hinder nickchange-flooding. (also see 2.1)&lt;br /&gt;&lt;br /&gt;This is usefull for a number of things, and could improve protection-routines of scripts and ops. You can have "auto-ban on flood" turned on in your script without beeing afraid of kicking a friend that's playing some ascii-art to the chan. Another idea is to implement it as a "last warning" before getting kicked, or a nice way of stopping peoples annoying /timer messages when they'r away from the keyboard, but still letting them stay.&lt;br /&gt;&lt;br /&gt;And if you have some annoying person in your channel, you have the ability to shut his/her mouth, letting people get on with their chatting, or talking back if they feel like it, and the person, his right of babbel taken away and now ignored by everyone, leaves the channel himself. :-) In some way, it's better than to give them the attention of a kick.&lt;br /&gt;&lt;br /&gt;NB: Any ban is overridden by a +v (see 3.6) and the /quit comment is censored for all channels (3.5.1)&lt;br /&gt;A ban will not stop a person from sending external messages to the channel, use a +n mode for that.&lt;br /&gt;Atleast up to ircu2.10.10.pl14, if you set a ban on a nick (bannednick*!*@*) then if somebody entered and changed their nick into bannednick, they would slip past the ban. If bannednick were an op however, the ban would kick in immediately if he were deopped. I suppose this is a bug.&lt;br /&gt;&lt;br /&gt;3.8 kick&lt;br /&gt;Removes a person from your channel. (need to be op in chan to do it) You can put a reason along if you like&lt;br /&gt;Syntax: /kick #channel person [reason] The maximun lenght of the reason is 160 characters on Undernet. See KICKLEN in chapter 7 for the lenght at your net&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.9 names. Listing the inhabitants&lt;br /&gt;Displays a list of nicks in a given channel.&lt;br /&gt;Syntax: /names #channel1,#channel2, ...&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;/names #soap.opera,#talkshow.&lt;br /&gt;Displays everyone in #soap.opera and #talkshow, and all visible nicks (2.7.4) if you'r not in the channels.&lt;br /&gt;&lt;br /&gt;In ircu, it is processed as two /names queries, and will show a person twice if in both channels.&lt;br /&gt;/who #soap.opera,#talkshow (2.14) however, lists the person only once.&lt;br /&gt;The list of names will be sorted according to when they joined the channel, with the newest member at the beginning.&lt;br /&gt;&lt;br /&gt;Notes:&lt;br /&gt;Wildcards dosn’t work. Sending the query to a remote server, (/names #chan server) is prohibited on Undernet, but is mentioned in RFC1459, so others might allow it. (Practical use related to “local channels” (3.2) )&lt;br /&gt;“/names 0” floods you off trying to list every channel on the net. prior to ircu2.10.11, typing /names were enough to do this.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.10 Cnotice/Cprivmsg. A "too many targets" exception&lt;br /&gt;New in ircu2.10.02, +v ability added in 2.10.05&lt;br /&gt;Syntax:&lt;br /&gt;/CNOTICE &lt;nick&gt; &lt;channel&gt; &lt;message text&gt;&lt;br /&gt;/CPRIVMSG &lt;nick&gt; &lt;channel&gt; &lt;message text&gt;&lt;br /&gt;&lt;br /&gt;What and Why:&lt;br /&gt;Undernet implemented an anti-flood measure in ircu2.10, so that you can’t message more than so and so many people in a short interval. (20 per 2 minutes on Undernet but 10 immediately when you logon). This caused problems for those that NEED to do this, for instance bots in gaming channels. Because of this, CNOTICE/CPRIVMSG were implemented. If you’r a channel operator or has voice (+v) you can mass-message people in your channel using CNOTICE and CPRIVMSG without getting the “too many targets” error.&lt;br /&gt;The restrictions on number of targets should not be confused with the restriction on how much data that is allowed to pass to and from the client in a given time before it starts lagging or the client-server connection is dropped altogether. To avoid this, your bot should somehow pace the information it sends out, not pushing a hundred lines of text at once.&lt;br /&gt;&lt;br /&gt;Note: Regardless of your status in a channel you can always /msg +k services without worrying about running out of targets (2.5.1)&lt;br /&gt;Also see /wallchops (3.11) and the logon procedure (7)&lt;br /&gt;&lt;br /&gt;3.11 Wallchops&lt;br /&gt;From version 2.10 of ircu, this early attempt at an ad-hoc solution to a special case of the problem mentioned in 3.10 were added.&lt;br /&gt;This sends a mass message to every channeloperator in a channel. It is supposed to replace any “message the ops” script you might have.&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;/raw wallchops #chan or /notice @#chan Sending a NOTICE in both cases.&lt;br /&gt;&lt;br /&gt;These are two ways to send the same command. Restrictions apply as for any /notice. But if you'r using mIRC and type /wallchops directly, you are in fact using mIRCs own wallchops. mIRC will demand that you'r an op in the channel for you to use it.&lt;br /&gt;Thanks to Daniel Corkill for pointing out this to me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-5137120052452109912?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/5137120052452109912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=5137120052452109912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/5137120052452109912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/5137120052452109912'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/3-channels.html' title='3 Channels'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-2101840347103926423</id><published>2008-03-21T23:05:00.000-07:00</published><updated>2008-04-01T10:04:00.278-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>2 People</title><content type='html'>2 People&lt;br /&gt;2.1 nick&lt;br /&gt;Sets your nick. Syntax: /nick yournewnick The maximum nicklenght on Undernet is 9 characters. See NICKLEN in chapter 7 for the length at your net and 6.9 for legal characters in a nick.&lt;br /&gt;&lt;br /&gt;There’s a “nickchange too fast” floodstopper in ircu. A person could flood a channel with his nickchanges while for the same reason beeing hard to kick. You can not change your nick more than once in 30 secs, or twice if it’s been unchanged for 60 secs already.&lt;br /&gt;You can’t change your nick if you’r in a channel where you’r banned, see 3.7&lt;br /&gt;2.2 privmsg&lt;br /&gt;Syntax: /privmsg receiver text&lt;br /&gt;If the receiver is a nick, this equals talking to someone in a private window.&lt;br /&gt;If the receiver is a channel and you'r in it, it equals typing something in the channel. also see the sister-command /notice (2.3)&lt;br /&gt;/msg as it is called in mIRC, could also be used for external messages. (See +n 3.5). When you send a message to a channel from outside with /notice, mIRC and other clients will treat it correctly, while an external /privmsg will appear as if an invisible nick suddenly raised its voice. According to some this is still the correct way, according to others it violates the graphical user interface. Might make for a nice trick anyway..&lt;br /&gt;&lt;br /&gt;If we take advantage of the underlying machinery, we can send one message to several destinations. Here's an example:&lt;br /&gt;"/raw PRIVMSG Sabeltann,Timo,#ruminants :The grass is greener on the other side, lets move!"&lt;br /&gt;Or just: "/privmsg nickorchan,nickorchan text". (Works in mIRC) Note that since we're overriding mIRC, the text you send isn't displayed in the channelwindow. You will have to /echo that in yourself with your script.&lt;br /&gt;(Maybe an idea for suppressing display of text your script send to a channel. Didn't some IRC-virus implement that already?)&lt;br /&gt;&lt;br /&gt;PRIVMSG is also taking care of the /me statements. See 6.3&lt;br /&gt;&lt;br /&gt;The /raw (or /quote) command is how you bypass aliases and your clients interpretation of commands. Sometimes, you pass the command directly, like in /map, a command mIRC has no "idea" about what means, while in multiple sending above, we used /PRIVMSG , as /msg is a command in mIRC that it translates according to its own rules, before passing it on as PRIVMSG to the server.&lt;br /&gt;&lt;br /&gt;Up to ircu2.10.10, there were an extra secure syntax on the form:&lt;br /&gt;/msg nick[%host]@server&lt;br /&gt;where host is the optional address of the nick and server the irc-server it resides on. This syntax were intended for sending your password to the channelservice bots, so that you wouldn't mistakeingly send it to someone else posing as them on another network. On Undernet, you could never change your nick into typical service-nicks anyway. (see 5.2.2)&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;The nick Timo has the address “*.surfers.org” and is using the irc-server “Oslo-R.NO.EU.Undernet.org”&lt;br /&gt;/msg Timo%*.surfers.org@Oslo-R.NO.EU.Undernet.org Hi there! You won't see this if you don't match my criteria&lt;br /&gt;&lt;br /&gt;This feature isn't of much use as authentication of normal users, for that refer to authentication via the channelservice bots. As of 2.10.11, it does not longer send the message, but curiously enough, will give a "no such nick" if you get the host or server wrong.&lt;br /&gt;Together with the list of servers available from www.undernet.org, this supply us with a brute-force way to find a persons' irc-server.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.3 Notice&lt;br /&gt;Syntax: /notice receiver text where receiver is nick or channel.&lt;br /&gt;&lt;br /&gt;The reason for NOTICE according to RCF1459, is to define a way to send messages that should never generate an automatic reply. The object is to avoid loops of responses between scripts/bots, for example this quite repeating conversation:&lt;br /&gt;Bot1: Please send afile.txt&lt;br /&gt;Bot2: Sorry, I'm turned off.&lt;br /&gt;Bot1: I don't understand the command "Sorry, I'm turned off".&lt;br /&gt;Bot2: Sorry I'm turned off.&lt;br /&gt;&lt;br /&gt;A ping Query/Reply between users (6.3) is a good example of an automated PRIVMSG/NOTICE pair.&lt;br /&gt;NOTICE-messages may be treated slightly different than PRIVMSG when displayed in mIRC, both in color and which window they'r displayed in. Just as PRIVMSG, you may msg both channels and person. You may send a notice to the channelops alone with: /notice @#channel text (3.11)&lt;br /&gt;&lt;br /&gt;2.4 Whois&lt;br /&gt;Syntax: /whois nick1,nick2, ...&lt;br /&gt;Basic information about a nick. A central command in IRC and it pops up all through this guide. Usermodes (2.5), getting seconds idle (2.6) e.t.c Notice that the channels in the whois reply are sorted with the channel the nick joined first as the rightmost.&lt;br /&gt;The full internet-address for the user is shown in the whois, also see 2.9. Some nets hide the first part of the address, as an attempt to combat attacks which involve the users' address, e.g portscanning and pinging. Then only IRC-operators may see the full address. (something like this is in the making on Undernet, see 2.5.1) Others will send an IDENTD request to verify the username. mIRC usually handles that. For more information about identd, see the IDENTD RFC. (RFC1413) or check the undernet homepage.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;Debet is ~ted@modem68.johnsonconsulting.com * Accountancy RULEZ&lt;br /&gt;Debet on @#spreadsheet-newbies&lt;br /&gt;Debet using *.undernet.org The Undernet Underworld&lt;br /&gt;Debet End of /WHOIS list.&lt;br /&gt;&lt;br /&gt;The ~ means that no IDENT has verified the username ted and Debet is an op on #spreadsheet-newbies.&lt;br /&gt;The network does not hide his internet-address modem68.johnsonconsulting.com but it hides what IRC-server he is using, an ircu2.10.10-something feature.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.5 Usermodes&lt;br /&gt;2.5.1 All the modes for a nick&lt;br /&gt;Here's all the modes available for a nick.&lt;br /&gt;&lt;br /&gt;Syntax: /mode &lt;nickname&gt; {[+|-]mode(s)}&lt;br /&gt;&lt;br /&gt;i&lt;br /&gt; Makes you invisible. See "Note on invisibility" (2.7.4)&lt;br /&gt;&lt;br /&gt;s&lt;br /&gt; Receives server notices. You receive various information sent between servers. Mostly kills and G-lines, but also nickname collisions, invalid usernames, splits e.t.c See 2.5.3 for masks for this command. (ircu only)&lt;br /&gt;&lt;br /&gt;w&lt;br /&gt; Receives wallops. The IRCops broadcast messages with this, you might even catch an IRCop-conversation! (Almost like tuning in on the police-radio, eh? :-P ) As for the moment, "uworld.undernet.org", that is the X service on Undernet, uses the Wallops too. ircu2.10.10 has the option of disabling this for regular users&lt;br /&gt;g&lt;br /&gt; [New in ircu2.10.04] You receive “HACK wallops”. After a desynch of the net, servers would start mending it and creating large amount of these wallops. This tended to flood the user and desynchs were even created to do just that. Therefore these wallops were moved to beeing “DESYNCH messages”, displayed as wallops to the user if he were +g&lt;br /&gt;d&lt;br /&gt; Deaf in all channels. Ircu only. You won't "hear" a thing that's said in the channels. Private messages get trough though. Primary reason is making the job easier for service bots that dosn't want to process channel messages. Makes logging of changes in chan easier too, and would suffice as an overly brute channel-flood stopper.&lt;br /&gt;x&lt;br /&gt; On a network where everyone runs ircu2.10.11 or above, you will be able to turn on this mode after logging into X on Undernet or whatever service your net would be running. setting this mode hides your hostname (your internet address) in the /whois reply and elsewhere. The hostname “modem44.londonpark.com” used by the registered user WinstonC would be masked as “winstonc.users.undernet.org”, so these users are still fully banable, even though their ISP can’t be tracked down.&lt;br /&gt;&lt;br /&gt;Hiding your hostname will shield you against several types of attacks often carried out on IRC, but be aware that taking part in a DCC chat or filetransfer will reveal your IP-address, so turn off automatic acceptance of these if you want to use +x.&lt;br /&gt;Also see use of passwords during logon (7)&lt;br /&gt;&lt;br /&gt;In addition, there's the operator flag, (+o) that indicates an operator, the zombie-flag "!" used halfway in mending a netsplit, +k that's used by the channelservice. And +r to signify a logged-in service account, a prerequisite to set +x. (See 3.5.1 for details on +r)&lt;br /&gt;No one can kick or deop +k clients from a channel, and they may also message any channel from outside, regardless of any restriction. You may /msg +k users regardless of target-restrictions. (3.10, 7) Lastly, a whois on a +k won’t show the channels it’s on.&lt;br /&gt;&lt;br /&gt;Note that Undernet do not let ordinary users see w, g and s messages. The ability to disallow that has been around since ircu2.10.10. (see 1.4)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.5.2 Finding peoples modes&lt;br /&gt;You'll spot a +d in the who and whois reply.&lt;br /&gt;Example:&lt;br /&gt;"/Who mowgli" returns: mowgli Hd* mow@ppp-21.treetop.jungle.br :3 Baloo-Bot TM&lt;br /&gt;Hd means the user is Here (as opposed to Gone, i.o.w away(2.11)) and that mode d (deaf) is on. The * tells us he's an IRCop. :3 means the hopcount is 3. (4.1.5)&lt;br /&gt;In the /whois reply, a +d is spotted by a - after a channelname.&lt;br /&gt;Example: mowgli on -@#Junglechat (+d mode and op on the channel.)&lt;br /&gt;+o is spotted in whois by "nickname is an IRC operator"&lt;br /&gt;+i is spotted by doing "/whois *nickname" and seeing if the right person pops up. If he/she dosn't, the nick is invisible.&lt;br /&gt;+w and +s can't be seen by normal users. (+w due to a recent Undernet patch)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;For address and away, also see /userhost (2.9)&lt;br /&gt;&lt;br /&gt;2.5.3 Server notice masks&lt;br /&gt;From version 2.10 of the ircu serversoftware, a masking option of users s-mode has been implemented, so you can decide which types of notifications you’r interested in. +s is disabled for users of Undernet though.&lt;br /&gt;This section is based on documentation supplied by Ghostwolf.&lt;br /&gt;&lt;br /&gt;Syntax: /mode &lt;nick&gt; +s [+/-][mask]&lt;br /&gt;&lt;br /&gt;Mask&lt;br /&gt; Name&lt;br /&gt; Description&lt;br /&gt;1&lt;br /&gt; SNO_OLDSNO&lt;br /&gt; unsorted old messages&lt;br /&gt;2&lt;br /&gt; SNO_SERVKILL&lt;br /&gt; server kills (nick collisions)&lt;br /&gt;4&lt;br /&gt; SNO_OPERKILL&lt;br /&gt; oper kills&lt;br /&gt;8&lt;br /&gt; SNO_HACK2&lt;br /&gt; desyncs&lt;br /&gt;16&lt;br /&gt; SNO_HACK3&lt;br /&gt; temporary desyncs&lt;br /&gt;32&lt;br /&gt; SNO_UNAUTH&lt;br /&gt; unauthorized connections&lt;br /&gt;64&lt;br /&gt; SNO_TCPCOMMON&lt;br /&gt; common TCP or socket errors&lt;br /&gt;128&lt;br /&gt; SNO_TOOMANY&lt;br /&gt; too many connections&lt;br /&gt;256&lt;br /&gt; SNO_HACK4&lt;br /&gt; Uworld actions on channels&lt;br /&gt;512&lt;br /&gt; SNO_GLINE&lt;br /&gt; glines&lt;br /&gt;1024&lt;br /&gt; SNO_NETWORK&lt;br /&gt; net join/break, etc&lt;br /&gt;2048&lt;br /&gt; SNO_IPMISMATCH&lt;br /&gt; IP mismatches&lt;br /&gt;4096&lt;br /&gt; SNO_THROTTLE&lt;br /&gt; host throttle add/remove notices&lt;br /&gt;Operators only:&lt;br /&gt; &lt;br /&gt;8192&lt;br /&gt; SNO_OLDREALOP&lt;br /&gt; old oper-only messages&lt;br /&gt;16384&lt;br /&gt; SNO_CONNEXIT&lt;br /&gt; client connect/exit&lt;br /&gt;&lt;br /&gt;If you want more than one of the masks, you simply add the numbers. To later add or remove a mask from your s-mode, use + and -.&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;To be notified upon net join/breaks, you would type /mode yournick +s 1024.&lt;br /&gt;Later you’r eager to be notified when your server fills up, so you type /mode yournick +s +128.&lt;br /&gt;Now you are notified both about “too many connections” and “net join/break”&lt;br /&gt;&lt;br /&gt;Another day, you’r feeling bored, and want to watch new g-lines (5.1.2) in addition.&lt;br /&gt;You type /mode yournick +s 1664. (Since 1024 + 128 + 512 = 1664)&lt;br /&gt;But this is too much, so you drop the g-lines with /mode yournick +s -512. (/mode yournick -s +512 works fine as well)&lt;br /&gt;&lt;br /&gt;/mode yournick +s 8191 let you have it all&lt;br /&gt;&lt;br /&gt;Standard if no mask supplied: SNO_OPERKILL, SNO_GLINE and SNO_NETWORK.&lt;br /&gt;/mode yournick +s will give you kills done by operators, G-lines and netsplits/joins&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.6 Getting seconds idle&lt;br /&gt;The idle time is how long the nick has been silent towards its IRC-server. In other words being quiet. Only the server that the nick is connected to "knows" this. Knowing the idle-time is usefull if you wonder if the person has left the keyboard without putting on an away-message, or might just be ignoring you. It could also be used successfully as a "silent ping" as it can give you the lag from you to the nicks' server. Just count the seconds it takes from you send the command to you receive the reply, and divide with 2. That's how many seconds it take for a message from you to reach the persons server. (another approach outlined in 4.1.5)&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;/whois nick nick or /whois fullservername nick where fullservername is the nicks server.&lt;br /&gt;the first syntax is available from ircu2.10.00, the second works only below 2.10.10.pl14. What technically happens, is your everyday whois-request beeing transmitted to a remote server.&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;Xerxes is on stlouis, we're some other place: /whois stlouis.mo.us.undernet.org Xerxes&lt;br /&gt;We get a whois with Xerxes' idle-time:&lt;br /&gt;Xerxes is johnbg@ppp52.netomania.com * John Bertram Garfunkel&lt;br /&gt;Xerxes on #Creedence #Japanese.baseballcards @#old_boats&lt;br /&gt;Xerxes using StLouis.MO.US.UnderNet.org StLouis' Gateway to the UnderNet&lt;br /&gt;Xerxes has been idle 50min 12secs, signed on Thu Aug 1 15:35:23&lt;br /&gt;End of /WHOIS list.&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;* If you and the nick is on the same server, a common /whois will do the same.&lt;br /&gt;* The chatting in a DCC-chat dosn't go through the IRC-network, and so is not detected by idle-time. An alternative "ping" could be to use the CTCP finger (/ctcp nick finger) as atleast mIRC supplies an idletime for the whole program in the reply; but this isn't "silent".&lt;br /&gt;* It's standard to only nullify idle-time when nick uses PRIVMSG. That is, sending a message to a nick or a channel. /notice does not qualify. See server options (4.2.7) to determine if the server is using the standard setting.&lt;br /&gt;* away-messages arn’t broadcasted when a netsplit is mended. You must do a remote whois to see it.&lt;br /&gt;* admins have the option from ircu2.10.10 and onwards, to hide the idletime when requested remotely.&lt;br /&gt;&lt;br /&gt;2.7 Searching for people&lt;br /&gt;2.7.1 Searching by address&lt;br /&gt;Example:&lt;br /&gt;/who *.fiddledep.gov&lt;br /&gt;This lists all visible nicks using the Fiddle Departments’ internet-connection. The command is usefull for finding people from your own host and geographical area and finding people who tend to change their nicks often.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;Your ISP gives people from your area DNS-addresses ending with "smalltown.wasanet.se" for example modem30.ppp.smalltown.wasanet.se Typing /who *.smalltown.wasanet.se may then reveal people from your area.&lt;br /&gt;&lt;br /&gt;2.7.2 Searching by nick&lt;br /&gt;You can use wildcards like * and ? in a whois-query also. Here are some examples:&lt;br /&gt;/whois *sam* will give you nicks like Samantha, Sam47, Sam or Tarsam.&lt;br /&gt;/whois ??. This displays everyone with a nick of 2 letters, like Ma and V2.&lt;br /&gt;Undernet will not give you more than 251 nicks back from one query to stop you from flooding yourself.&lt;br /&gt;&lt;br /&gt;2.7.3 Searching it all&lt;br /&gt;The first line in a whois-reply might look like this:&lt;br /&gt;Xerxes is johnbg@ppp52.netomania.com * John Bertram Garfunkel&lt;br /&gt;using wildcards, we're able to search for anything in that line. Even the Namefield.&lt;br /&gt;"/who *garfunkel*", "/who *netomania*", "/who *xerx*", "/who john*" and "/who *funk*" will all reveal his name if he is visible.&lt;br /&gt;"/who fullservername" lists people using that irc-server. (wildcards allowed) so if he's on sandiego.ca.us.undernet.org, /who *diego* would reveal him and others as well. (Use /lusers with servername, as described in 4.1.1 if you'r just going to count people on a server.)&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;This shows that beeing visible and writing "I'm from Essex" in the namefield might not be such a good idea if some jerk is mass-messaging everyone that matches "/who *sex*". Again, be aware that the namefield IS searchable.&lt;br /&gt;See section 2.5.2 (Finding peoples modes) for explanation of details in the "/who nickname" output. Also note that "/who" searches each of the "information fields" (nick, login, real name, host name and server name) separately so you can't filter simultaneously, you must do an individual search for each field.&lt;br /&gt;That means if you’r looking for jane in sweden, you’ll have to look at the outputs of “/who *jane*” and “/who *se*”.&lt;br /&gt;“/who *jane* *se*” would ignore *se* and “/who *jane*se*” would search one and one field and match on the namefield “I’m Janet, now go stare at someone elses whois!” but would NOT match username janet with address *.se&lt;br /&gt;&lt;br /&gt;2.7.4 Note on invisibility&lt;br /&gt;Invisible people won't show up when searched for with /who, /who #chan and not on /whois with wildcards, unless you can see them already by sharing a channel.&lt;br /&gt;The intent is that no one is to find you if they don't know your exact nickname.&lt;br /&gt;I believe that in the future the searchmethods described here might become practically obsolete, as some servers already have the policy of putting people automatically on +i, (which do save the clients a lot of trouble). You can hide by changing nick, people can't mass-message everyone on your ISP and your' not visible from outside a channel. Today roughly half the nicks on Undernet and most on Efnet is set invisible.&lt;br /&gt;&lt;br /&gt;Note: If a nick is on a secret channel (3.5) they won’t show up on a wildcard /whois, even if they arn’t set invisible&lt;br /&gt;2.8 Finding an IRCop&lt;br /&gt;An IRC operator is a person with +o mode. (2.5) The op goes around fixing channelops, kicking users and maintaining the net.&lt;br /&gt;Don’t expect help if you’r banned from a channel (Atleast that’s Undernet policy)&lt;br /&gt;The standard way to find an operator is to type /who 0 o (zero o). This lists all non-invisible opers on the net.&lt;br /&gt;Before you message them, check their idle-time. (2.6) Most of them idles for days.&lt;br /&gt;&lt;br /&gt;If this dosn’t work, the operators of your server might list themselves in the /motd (4.2.1), possibly with e-mail.&lt;br /&gt;By now, you have found everyone who wants to be found, proceed on your own risk:&lt;br /&gt;&lt;br /&gt;/stats O (5.1.4) reveal the nicks of operators on your server. (Ofcourse they could just change nicks after logging in)&lt;br /&gt;&lt;br /&gt;/trace (4.1.5) has a loophole that reveals online ops.&lt;br /&gt;&lt;br /&gt;Local channels are sometimes used by operators on your server. (3.2)&lt;br /&gt;&lt;br /&gt;Join typical oper-hangouts and do the /who 0 o again. The +i dosn’t apply when you share a channel. (please observe channel rules)&lt;br /&gt;&lt;br /&gt;Apropos operators&lt;br /&gt;A common question we get in helpchannels is: How do I become an IRCop? At Undernet, you’d have to be a friend or co-worker with a server administrator or start your own server to get op. Starting your own Undernet server is out of the question unless you work at a big ISP. This also applies to other big networks.&lt;br /&gt;Whatever the reason for your hunger for power is, be it fame, revenge, groupies or tax deduction, you’d have a better chance at one of the really small networks. Then again, who in their right mind would give op to a total stranger who comes in and just ask for it? As a last resort you can always start your own network! (8.2)&lt;br /&gt;&lt;br /&gt;2.9 userhost / userip&lt;br /&gt;Returns a nicks hostaddress or IP and if it's away or not.&lt;br /&gt;Syntax: /userhost nick nick ... (max 5 nicks)&lt;br /&gt;Example:&lt;br /&gt;sending: /userhost RAmona Sssala&lt;br /&gt;reply: RAmona=-mummy@crypt.pyramid.eg Sssala=+snake@cage.zoo.com where -/+ = away / not away&lt;br /&gt;sending: /userip RAmona gives the reply: RAmona=-mummy@994.193.192.24&lt;br /&gt;&lt;br /&gt;Why UserIP:&lt;br /&gt;Userip were implemented in ircu2.10.01 because more and more users have "virtual hostnames", that allow the person to use any sort of hostname withouth a common domain. E.g modem5.snowbiz.com one day and modem5.snowwomen.org another day, making it harder to ban these people. A ban by IP-adress would have been very effective in this case, and that is exactly what has been implemented. The ban-code has been changed so that you can ban an IP-adress even if the server has resolved his/her address as a hostname. The IP-ban has also taken effect for SILENCE (2.12) and K-lines (5.1.1)&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;123.321.254 is the IP of the DNS-name "m5.camping.com". Before 2.10.1, you could ban the users' IP, but if it was resolved by irc- server to the DNS-name, the person would slip through. Not so anymore.&lt;br /&gt;&lt;br /&gt;But ofcourse you need to ban the ISP. Using a dialup-account, he gets slightly different IPs every time he logs on.&lt;br /&gt;So what’s the IP of the ISP? /dns in mIRC tells me that m1.camping.com has IP 123.321.250 and it seems to end at m200.&lt;br /&gt;I set the bans to 123.321.* ,123.322.* and 123.323.* knowing I’ve banned the ISP, hoping I havn’t banned others. Banning an ISP to stop a person is a brute approach anyway if it’s a large ISP, and most people that are banned give up withouth putting much effort in getting around the ban, so I havn’t bothered finding more elegant ways to do this, but I think you can use regular IP-masks in this ban. (If you know a more accurate way to ban an ISP, i hope to hear from you)&lt;br /&gt;&lt;br /&gt;Isn’t /dns in mIRC and /userip practically the same? Usually so, but not necessarily. When a user connects, the irc server first gets the IP-address of the user and uses it to resolve the DNS-address which it puts in the /whois reply. When queried with a /userip request, it will reply with the original IP-address. mIRC on the other hand, takes the DNS-address it finds in /whois and tries to translate it back to an IP-address. By that time, the records mapping IP-addresses to DNS-addresses could have changed, or your client and the IRC server receives different replies to a DNS-lookup for some obscure reason. In short, you risk getting the wrong IP-address, so use /userip for added reliability.&lt;br /&gt;&lt;br /&gt;Also see +x (2.5.1) for the upcoming ability to ban a user when logged in on the channelservice&lt;br /&gt;2.10 Whowas&lt;br /&gt;Syntax: /whowas nick [count]&lt;br /&gt;If someone just left IRC or changed their nick, and you didn’t get their address, the server keeps a buffer with the nicks that disappeared the last seconds. Count is how many nicks it should return. Every matching nick if not supplied. No wildcards are allowed so the count were only usefull in special cases. For how many nicks the server keep in whowas, see /stats z (5.3.5)&lt;br /&gt;2.11 away&lt;br /&gt;Syntax: /away [insert cunning remark about doing laundry here]&lt;br /&gt;Sets an away-message that will be displayed in your /whois reply and shown to people who try to contact you.&lt;br /&gt;See chapter 7 for the maximun lenght of your away-message (It's 160 by default on Undernet)&lt;br /&gt;See 6.5 for the issue of netsplits and 2.5.2 and 2.9 on spotting the mode while missing the cunning remark.&lt;br /&gt;2.12 silence&lt;br /&gt;mIRC has a very customizeable command called /ignore that will filter out everything coming from certain nicks or addresses. What it dosn't do though is stopping the noise from coming through your connection. This means you could be flooded off even with ignore on. Therefore, Undernet has implemented the /silence command. When it is used, the network won't even send you the unwanted data.&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;/silence [+/-]nick!name@host.host.dom (nick or host alone allowed)&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;/silence +uglyguy!~jacktr@modem54.styx.net silencing nickname uglyguy with matching address.&lt;br /&gt;/silence +*!*@modem54.styx.net Anyone from his address. (In case of clones)&lt;br /&gt;/silence +*!*styx.net Anyone using his ISP. (For repeated attacks.)&lt;br /&gt;when +/- are omitted, + is asumed. A setting is removed by "/silence -setting". E.g: /silence -*!*styx.net.&lt;br /&gt;/silence will display your silence settings. /silence nick will display the known silence-settings of that nick. That is a feature, not a bug in fact.&lt;br /&gt;&lt;br /&gt;You don’t get an error-message if you message someone that has silenced you, but if you suspect you’ve been silenced, type /silence nick and you may find yourself listed.&lt;br /&gt;&lt;br /&gt;When Alice is silenced by Bob, but Alice tries to message Bob nontheless, the message reaches Bobs server, which then replies to Alices’ server that Bob has silenced Alice, and that there’s no need to relay further messages from her. Every server from Bobs to Alices including now knows about the silence, and those on those servers who type /silence Bob will see his silencing of Alice.&lt;br /&gt;This openness means that people on the same server as Bob sees ALL his silence-settings.&lt;br /&gt;&lt;br /&gt;On Undernet, you have a maximum of 15 lines of silence-settings. Doublecheck with your logon in chapter 7&lt;br /&gt;Overlapping silences are removed. Example: /silence +*.dadaism.net will remove silencing of *modem4.dadaism.net since it is now reduntand. Beware that /silence -*.dadaism.net would also remove the modem4 silencing.&lt;br /&gt;Removals are propagated immediately to other servers.&lt;br /&gt;&lt;br /&gt;Silence settings must be set every time you log on. This can be done automatically with your client. For more information about flooding and how to defend against it, see the undernet website or the helpbot in #class on undernet.&lt;br /&gt;&lt;br /&gt;See 2.9 (userhost / userip) for how to silence people with virtual hostnames.&lt;br /&gt;&lt;br /&gt;2.13 ISON&lt;br /&gt;ISON is the command used for the notify list in mIRC.&lt;br /&gt;Syntax: /ISON nick1 nick2 nick2 ...&lt;br /&gt;The server replies with ISON: nicksthatexist&lt;br /&gt;One string of nicks sent should be no longer than 512 bytes.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;you send: /ISON Susanne MadMex Martha29 ZyGoT and users with the nicks Susanne and Zygot is online.&lt;br /&gt;reply: ISON: Susanne Zygot&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.14 WHO with advanced parameters&lt;br /&gt;/who gives part of the same info as /whois.&lt;br /&gt;ircu2.10.02 gave the WHO command a new look and in ircu2.10.05, even more adjustments were made.&lt;br /&gt;As an example, the extended WHO will let you count people away in your channel and how many servers away they are, with a single command to the server. Searching and filtering are also more customizable than before, but still keeping backward compatibility.&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;WHO &lt;mask1&gt; [&lt;options&gt; [:&lt;mask2&gt;]]&lt;br /&gt;Which gives:&lt;br /&gt;WHO &lt;mask&gt; &lt;options&gt; or WHO &lt;some garbage&gt; &lt;options&gt; :&lt;mask&gt;&lt;br /&gt;The second syntax will allow a space, and is therefore good for matching the infotext. Case is not significant anywhere.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The mask:&lt;br /&gt;It defines the search criteria. I'll get back to what you'r searching in.&lt;br /&gt;There are two ways to define it:&lt;br /&gt;&lt;br /&gt;    * A comma separated list of elements.&lt;br /&gt;      The elements will be assumed a nick or a channel name.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    * With a single mask, possibly using * and ?.&lt;br /&gt;      This could be used to search any field&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;If you'r not familiar with masking, * means "any string, even of zero lenght" and ? means "one character". the mask "ge*" would match both "get" and "geronimo!" while "l?ve" matches "love" and "live", but not "legislative".&lt;br /&gt;"i??*" matches "inventory" and "inn", but not "is".&lt;br /&gt;&lt;br /&gt;In the case of IRC atleast, "0" works as a *.&lt;br /&gt;&lt;br /&gt;If you wish to match IP-numbers in the single mask, there's 3 ways to do it.&lt;br /&gt;(This part is quoted from the WHO documentation in the ircu2.10.05 release notes, which you can find at www.coder-com.undernet.org)&lt;br /&gt;&lt;br /&gt;    * Make a usual mask using * and ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    * An IP-mask on the form a.b.c.d/e.f.g.h as used in most firewalls and system configurations, where what is before the / are the bits we expect in the IP number and what is after the / is the "filter mask" telling which bits would be considered and which should be ignored.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    * An IP-mask on the form a.b.c.d/bitcount, where bitcount is an integer between 0 and 31 inclusive. The matching will be for the IPs whose first "bitcount" bits are equal to those in a.b.c.d&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Options:&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;[&lt;flags&gt;][%[&lt;fields&gt;[,&lt;querytype&gt;]]]&lt;br /&gt;&lt;br /&gt;Flags:&lt;br /&gt;The flags define which parts of the available data you’d like to search in.&lt;br /&gt;Each flag is one letter. First, the various userinformation:&lt;br /&gt;&lt;br /&gt;n&lt;br /&gt; Searching nicknames to match.&lt;br /&gt;u&lt;br /&gt; UserID. (As in nick!user@host)&lt;br /&gt;h&lt;br /&gt; Hostname. (Still as in nick!user@host)&lt;br /&gt;i&lt;br /&gt; Numeric IP.&lt;br /&gt;e&lt;br /&gt; Servername. (The canonic name of the IRC server a person is using) Use /links (4.1.3) if you'r unsure about canonical names&lt;br /&gt;r&lt;br /&gt; Info text. (Formerly known as "realname" )&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;If you don't specify any of these flags, the default "nuhs" is used. (Everything except the numeric IP and realname)&lt;br /&gt;&lt;br /&gt;In addition, it's possible to search for for usermodes, (overview in 2.5.1) but there's only support for one of them:&lt;br /&gt;o&lt;br /&gt; Operator (Yup! the same as in 2.8)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fields:&lt;br /&gt;When the WHO-command has found a bunch of persons, then this tells it which fields&lt;br /&gt;of the userinformation should be returned to you.&lt;br /&gt;&lt;br /&gt;c Include the last channel the person joined, or first common, if the person is +i.&lt;br /&gt;(If no common channel exist among you, a +i user won't be shown.)&lt;br /&gt;d How many servers away the nick are. (hopcount, also see 4.1.5)&lt;br /&gt;h hostname&lt;br /&gt;i Numeric IP&lt;br /&gt;n nick&lt;br /&gt;r Info text&lt;br /&gt;s servername&lt;br /&gt;u userID (with eventual ~)&lt;br /&gt;&lt;br /&gt;f Include all the flags you passed on earlier&lt;br /&gt;t Include querytype in the reply (see below)&lt;br /&gt;&lt;br /&gt;The fields are always returned in the same order.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Querytype:&lt;br /&gt;Usefull for scripts. The querytype, an integer, is passed on with the WHO. If you specify t in Fields, the lines in the reply will start with this number (query or request type field of the output). Works like a note to itself. "Oh! This is my who-query, do so and so with it."&lt;br /&gt;&lt;br /&gt;Note to scripters: If no %fields are specified, the who reply are in numeric 352. If %fields are specified, numeric 354 are used instead, because a non-standard 352 tended to confuse clients.&lt;br /&gt;&lt;br /&gt;A WHO-query could end up matching everyone and flood you off with the reply or exhaust the server. To avoid this, the maximum number of lines in the reply is 2048/(n+4) where n is the number of Fields you've specified. A default query gives max 186 lines.&lt;br /&gt;&lt;br /&gt;The reply:&lt;br /&gt;Beside the nick in the reply we will gett various letters indicating:&lt;br /&gt;H / G&lt;br /&gt; Here or Gone, indicating if the nick is set /away or not&lt;br /&gt;*&lt;br /&gt; The nick is an IRC-operator&lt;br /&gt;@&lt;br /&gt; The nick is a channel-operator on the last channel it joined and still is on&lt;br /&gt;+&lt;br /&gt; The nick is voiced on the last channel it joined and still is on&lt;br /&gt;!&lt;br /&gt; The nick is zombie on a channel&lt;br /&gt;d&lt;br /&gt; The nick is set deaf&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;&lt;br /&gt;We send: /who 0 o%fn to get a list of operators. The reply is this:&lt;br /&gt;Napoleon H*&lt;br /&gt;McMini H*&lt;br /&gt;Sodapunk H*@&lt;br /&gt;Tordivelen G*@&lt;br /&gt;Aquagirl H*&lt;br /&gt;Q-Beck G*&lt;br /&gt;* End of /WHO list.&lt;br /&gt;&lt;br /&gt;Each line presents one nick and the corresponding flags. Tordivelen is both gone and a channel-operator in the last channel he joined.&lt;br /&gt;&lt;br /&gt;/who #Luggage_Claim %dct,9 could return this:&lt;br /&gt;9 #Luggage_Claim 3&lt;br /&gt;9 #Luggage_Claim 3&lt;br /&gt;9 #Luggage_Claim 1&lt;br /&gt;9 #Luggage_Claim 3&lt;br /&gt;9 #Luggage_Claim 3&lt;br /&gt;9 #Luggage_Claim 5&lt;br /&gt;9 #Luggage_Claim 3&lt;br /&gt;&lt;br /&gt;"9" is the query type field, The rightmost numbers are the hopcount for each nick. Most of the folks seem to be 3 hops away.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;If you'r using a mIRC copy older than 5.3, you'll have to send channel-whos as "/raw who #e.t.c..."&lt;br /&gt;On EFnet and possibly other nets but not Undernet “/who *” lists everyone on the last channel you joined and still is on (the first channel in your whois-reply) If you’r on no channels or on Undernet, “/who *” will flood you.&lt;br /&gt;&lt;br /&gt;If you’r say, swedish and joins a channel, you may want to type “/who #channel *.se” to list every swede in the channel.&lt;br /&gt;This a mIRC feature but works fine on non-ircu nets. However, with newer ircu you must a script to do this filtering manually as the extra parameter messes up the /who at the server.&lt;br /&gt;&lt;br /&gt;Before ircu2.10.11, the extended /who did not correctly display the + if a user were both Op and Voiced in the same channel.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.15 /quit&lt;br /&gt;Waves goodbye to the net. See 3.4 for the quitmessage.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-2101840347103926423?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/2101840347103926423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=2101840347103926423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/2101840347103926423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/2101840347103926423'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/2-people.html' title='2 People'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-482816319749673287</id><published>2008-03-21T22:59:00.000-07:00</published><updated>2008-04-01T10:04:00.278-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>IRC Comand Help</title><content type='html'>1 Introduction&lt;br /&gt;1.1 Why this guide?&lt;br /&gt;The average IRC-guides around tend to teach only the basics or they’r hopelessly outdated and mix IRC-commands with the IRCII 1) client commands. New features (last 10 years!) are downrigh hard to find documentation for, scattered as they are in releasenotes, newsletters or plainly undocumented.&lt;br /&gt;&lt;br /&gt;If you are new to IRC, I suggest you go for the other guides first, (http://www.irchelp.org/ or http://www.undernet.org/) but if you’re fairly familiar with IRC and want to fetch some interesting and often usefull commands, (2.6 and 3.7 beeing highlights) you’ve come to the right guide! :-)&lt;br /&gt;&lt;br /&gt;1) IRCII: The first client for IRC networks. mIRC is the most common client today.&lt;br /&gt;&lt;br /&gt;1.2 What does The IRC Command Cosmos contain?&lt;br /&gt;An explanation for every command on the IRC network Undernet or other nets using the latest ircu software 1), except service-commands 2) and those commands restricted to IRC-Operators only.&lt;br /&gt;&lt;br /&gt;What you can do on IRC depends on what software the irc-network is running. Over the years, this software has been split up into several different programs, maintained separately by different irc-networks. Beeing an Undernet user by chance, finding their software-development interesting and knowing several other nets to be using their software, I aim to completely document their version. I can’t keep up with development on the other nets like EFnet and IRCnet, but even if you use these nets, you may find this guide helpfull, the nets still got a lot of in common. 3)&lt;br /&gt;&lt;br /&gt;The guide should make sense for any client, even if my examples might be a bit skewed towards mIRC. You may need to replace /raw with /quote in my examples. This edition of the guide should be complete and up to date, as of version 2.10.11.rc.1 of ircu. (August 2002) The guide is updated once or twice a year, depending on the upcoming changes.&lt;br /&gt;&lt;br /&gt;1) ircu: The server-software developed by Undernet and also used by several other networks. See http://coder-com.undernet.org/ for the most recent version. Some networks have developed their software starting from earlier versions of ircu. A former developer started his own branch of ircu, (http://ircu.sourceforge.net/) claiming this to be the “real” ircu. This guide however, choose not to deal with specifics for this or other branches of ircu. Still, much in this guide will apply to them as well.&lt;br /&gt;&lt;br /&gt;2) For example X, nickserv, channelservice e.t.c&lt;br /&gt;&lt;br /&gt;3) While the nets have drifted apart, people are using the same clients on all nets and the specifications for a client havn’t changed over the years, so they need to display a minimum of uniformity for your dear mIRC, Pirch, amIRC e.t.c to work at all. The client protocol is more or less defined in RFC1459, a document that defined the “original” IRC. There exist other documents, like RFC2812, but 1459 is the only one who can claim authority among all the various nets, even though it itself is outdated. See ISUPPORT messages (7) for another way to bridge the divide.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.3 Is my net using ircu?&lt;br /&gt;&lt;br /&gt;Many of the smaller IRC networks are using various versions of ircu. To test if your net does, log into IRC and type /version. if the reply starts with u2...e.t.c, it’s using a version of ircu, e.g 2.10.10. If it dosn’t, you could also type /info and see if it mentions Undernet or ircu. Some nets run software based on an ircu version, but with their own tweaks and additions which /info ought to tell you about.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.4 Hiding the Undernet&lt;br /&gt;Early in 2001, Undernet was struck with a massive Denial Of Service-attack, bringing down the channelservice and prompting several servers to leave the net. This sped up the development of a replacement for the old X and W and led to proposal CFV-165 (nicknamed HEAD_IN_SAND in the ircu code) being passed by the owners of the servers. It were decided to hide all non-essential information from users, disabling non-essential commands and generally hide all information that could be misused, as g-lines and networkstructure. The proposal took effect from ircu2.10.10.pl14&lt;br /&gt;&lt;br /&gt;These commands are disabled:&lt;br /&gt;&lt;br /&gt;Every /STATS (5) except P, u and W&lt;br /&gt;/map (4.1.2)&lt;br /&gt;/links (4.1.3)&lt;br /&gt;/trace (4.1.5)&lt;br /&gt;+s, +w and +g nickmode (2.5)&lt;br /&gt;&lt;br /&gt;the names of irc-servers are hidden in /who (2.14), /whois (2.4), /whowas (2.10) and in netsplits and forced modechanges. Remote /whois dosn't depend on knowing the server and is still allowed. All other remote queries are or will be disabled.&lt;br /&gt;&lt;br /&gt;Each act of hiding is a configuration choice in the software, so other nets using ircu will be able to choose which of these, if any, they will adopt. This guide will keep the undernet-disabled features, as other nets still use them and may still choose to do so.&lt;br /&gt;&lt;br /&gt;CFV-165 is an internet-sociologists dream. Even though the most common complaint about CFV-165 is that it makes it harder to choose the right server so as to minimize lag between yourself and your friends, perhaps the underlying issue is how this somehow degrades irc into a confined webchat experience. It has been pointed to the well-known tendency to sacrifice freedom for security when times are tough, though you may claim someones freedom were sacrificed for the security of others (the owners of the servers)&lt;br /&gt;Does less information lead to less choice which leads to less freedom? Whether this makes IRC an anarchic, feudal or technocratic society (The idea of Internet as an anarchy has passed its best-before date, has it not?) is an interesting question or the bloated whineing of script-kiddies, depending on your viewpoint. :-)&lt;br /&gt;(Hey kids! A project on this may give you the grades to get YOU into the college of your choice! Visit your local library today!)&lt;br /&gt;&lt;br /&gt;Help to selfhelp&lt;br /&gt;With /map gone, http://www.undernet.org/servers.php keep a list of servers on undernet, minus the dedicated routing servers. In addition, there’s still a few commands left for the eager scripter-soul to exploit:&lt;br /&gt;&lt;br /&gt;    * before 2.10.10.pl15: Remote /admin (4.2.3) tests if a known server is connected to the net and support wildcards which return first matching. Maybe something about the network structure can be deduced from who’s first?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    * before 2.10.11: Another way to check if a server is in the net without connecting to it is doing a remote serverping by its full name: /raw ping servername will return PONG from yourserver yournick if the server is connected, and PONG from yourserver servername if it’s not. Apparently the ping never goes remote but is checked against the list of servers nontheless.&lt;br /&gt;    * The extended /msg syntax (2.2) allow for a quick brute-force search determining which server a nick is on. In ircu2.10.11.rc1 it will not send any message but amazingly still triggers a “no such nick” if you write in a non-existing servername. I have, for the lack of netsplits, been unable to check if the name is looked up in the list of connected servers or merely the static list of Undernet-servers that every server keeps locally. (anyone more versed in C out there?)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The tricks above suppose that the full servername (e.g oslo.no.eu.undernet.org) as seen by a user connected to it is the same name as the one propagated on the network. We shouldn't be surprised if, after the latest removals, beeing able to refer to a remote servers' name turns out as a non-essential feature in itself.&lt;br /&gt;The servers already refer to themselves by shorter nicks (4.1.2) when communicating between themselves, only translating for the users using a local list of names. As remote servernames don't get displayed anymore, renaming the servers in this list would stop the above exploits with no changes in the code. This however is impractical, so these tricks ought to be around up to some given ircu-version.&lt;br /&gt;&lt;br /&gt;    * The simplest and best tool is still ping (6.3). With users in a channel running some script, a usefull lag-map could still be constructed among those in a channel, giving suggestions of lesser lagged servers, regardless of the underlying network structure. There must be a script for this around already?&lt;br /&gt;      If we suppose that servers with lagged connections are seldomly hubs in the network, (4.1.2) it follows that changing to any other server will get you past its lagged connection, and so there's little need to consult the tree-structure. In June 2001, 17 out of 25 servers visible in /map were leafs, and some of the hubs were dedicated ones not allowing client-connections. (today, all hubs on Undernet are, far as I gather, unavailable to users)&lt;br /&gt;    * The difference between clients and users in /lusers (4.1.1) will tell you how many connections your server has to other servers and from that if it is a hub or purely a leaf.&lt;br /&gt;    * The propagation of the /silence settings (2.12) leave a trail across the net from the sending server via every intermediary to the receiving one. As we are allowed to see the propagated parts of other users’ silence-settings, one could traverse the servers winding up the thread like some cyber-Ariadne. Together with the information from /lusers and imposing the necessary tree-structure, (4.1.2) it shouldn’t be too hard to get the overview again. Almost as good as /map and twice the fun. :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In addition there’s littered with smaller glimpses of servernames in /kill, /who, /quit, /whowas netsplits, the use of local channels e.t.c in serverversions between ircu2.10.10 and 10.11. Should any of you implement the tricks above or find other loopholes yourself in 2.10.11, why not drop me a mail? (Well, to keep it to yourself and stop the ircu-coders from fixing it, but how does such secrecy fit with a hacker-mentality?) &lt;br /&gt;&lt;br /&gt;1.5 Changes in this edition of The IRC Command Cosmos&lt;br /&gt;Since edition 2.1, the following sections have changed, mostly due to changes in ircu between 2.10.10.pl14 and 2.10.11.rc.1&lt;br /&gt;&lt;br /&gt;1.4: Updating the self-to-selfhelp to reflect ircu development&lt;br /&gt;2.5.1: +w, along with +g and +s are not allowed on Undernet. (and has been disallowed for a while)&lt;br /&gt;2.5.1 and 3.5.1: Nickmodes +r, +x and channelmode +r introduced for upcoming channelservice upgrades and added security through host-hiding (we’ve been waiting for this one! :-D)&lt;br /&gt;2.6: Individual servers may choose to hide the idletime in a remote /whois&lt;br /&gt;2.9: An elaboration on the difference between /userip and /dns&lt;br /&gt;2.12: beeing able to see other users’ /silence list is not a bug, it’s a feature!&lt;br /&gt;2.14: extended /who didn’t display both @ and + if a user were both op and voiced in the same channel&lt;br /&gt;3.2: bugfix for /invite to local channels&lt;br /&gt;3.5.1: Changing into a banned nick while in channel now properly ban you and the modes +b and +m now stops you from sending to the channel from outside, even if it is -n.&lt;br /&gt;3.5.2: the propagation of topics is now less noisy&lt;br /&gt;3.11: Daniel Corkill solved the /wallchops vs /notice inconsistency&lt;br /&gt;4.1.4: A new /list stop feature added (Why didn’t anyone think of it before? A Coloumbi-egg)&lt;br /&gt;4.2.7: A new but uninteresting serveroption in /version&lt;br /&gt;6.9: A problem with characters and banning. Luckily only of academic interest.&lt;br /&gt;7: Updating information about the ISUPPORT messages and adding rumours about a novel use of the passworded login&lt;br /&gt;8: Addes some more weblinks and channels&lt;br /&gt;&lt;br /&gt;The STATS section does not reflect recent changes in the ircu code after Undernet barred access to them, but I may get back to these if I find an ircu-network where they are actually viewable by users or I get around to compile ircu on my computer. Until then I must refer to the coder-com website.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.6 Getting the latest version and contacting the author&lt;br /&gt;The latest edition is always available at http://www.student.uib.no/~st01369/ccosmos/ A mirror is available at http://www.irchelp.org/irchelp/misc/ccosmos.html. The last URL is probably the most permanent.&lt;br /&gt;If you wish to be notified of new editions, please visit http://www.topica.com/lists/ccosmos to register. (No, I won’t use your e-mail address for anything else and I won’t give it out to anyone. :-)&lt;br /&gt;Feel free to contact me with your corrections, suggestions or comments. As for quoting and noncommercial distribution: Go ahead, as long as the guides’ name and a link to its original location is kept and the text isn't altered substantially without stating so. If you'r mirroring the guide, drop me a note and I'll include a link to it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-482816319749673287?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/482816319749673287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=482816319749673287' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/482816319749673287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/482816319749673287'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/irc-comand-help.html' title='IRC Comand Help'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-8326804941327519168</id><published>2008-03-20T19:35:00.000-07:00</published><updated>2008-04-01T10:04:00.279-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>Netsplit Manual</title><content type='html'>Netsplit Manual&lt;br /&gt;&lt;br /&gt;Version 1.0.0&lt;br /&gt;&lt;br /&gt;Written by Mystro (mystro@canshell.com) on 2000-10-01&lt;br /&gt;&lt;br /&gt;Copyright © 2000 by the DALnet IRC Network&lt;br /&gt;&lt;br /&gt;Please direct any comments or feedback about this document (only! no help requests!) to docs@dal.net. If you need help on issues not covered in this document, please see the information at http://help.dal.net.&lt;br /&gt;Introduction&lt;br /&gt;&lt;br /&gt;Netsplits, also known as Network Splits, unfortunately, are an unavoidable part of IRC. Since IRC uses the Internet, IRC depends on the Internet's state at any given point. When a connection between two or more servers breaks (for whatever reason) a netsplit occurs. In this document I will explain why a netsplit occurs, how they are solved and what to do and not to do during a netsplit.&lt;br /&gt;Contents&lt;br /&gt;&lt;br /&gt;    * 1 What netsplits are&lt;br /&gt;    * 2 What do users see&lt;br /&gt;    * 3 How are netsplits solved&lt;br /&gt;    * 4 Dos and Don'ts during a netsplit.&lt;br /&gt;    * 5 Glossary&lt;br /&gt;    * 6 Conclusion&lt;br /&gt;&lt;br /&gt;1 · What netsplits are&lt;br /&gt;&lt;br /&gt;Netsplits occur when the connection of one or more server breaks with another server (for whatever reason). The network will break into two, separate halves. DALnet has many servers, some of which are hubs and some of which are leafs. Those hubs are connected together and form a web. The hubs also link one or more additional servers which are usually called leafs. When all those servers are linked together you have a network running where all servers are either indirectly or directly connected to each other.&lt;br /&gt;&lt;br /&gt;To best illustrate that you may want to think of a large tree. The tree has many branches which are all connected together. The tree also has leafs which are connected to a specific branch. When a netsplit happens, a leaf or hub is disconnected from the rest of the network.&lt;br /&gt;&lt;br /&gt;When this happens, the network is no longer whole: there are two parts (or 'sides'). One side with some servers and another side with a few other servers that are not connected together in any way.&lt;br /&gt;&lt;br /&gt;If this sounds confusing just think of the tree, if one branch falls, part of the tree is still together and the other part (which would be the branch with all the leafs) is somewhere else. While being part of the same network they are currently split and can not interact. Here's an example that might make this seem simpler.&lt;br /&gt;&lt;br /&gt;Ex. #1&lt;br /&gt;&lt;br /&gt;Hub1------------Hub2&lt;br /&gt; |               |&lt;br /&gt; |-Leaf1         |-Leaf4&lt;br /&gt; |-Leaf2         |-Leaf5&lt;br /&gt; |-Leaf3         |-Leaf6&lt;br /&gt;&lt;br /&gt;In this example 2 hubs are connected together and each of those hubs holds 3 other servers. In other words, 8 servers are directly and indirectly connected together and everything that happens on one server happens on the other.&lt;br /&gt;&lt;br /&gt;Ex. #2)&lt;br /&gt;&lt;br /&gt;Hub1            Hub2&lt;br /&gt; |               |&lt;br /&gt; |-Leaf1         |-Leaf4&lt;br /&gt; |-Leaf2         |-Leaf5&lt;br /&gt; |-Leaf3         |-Leaf6&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Above you can see the hubs are no longer connected together and while the hubs still hold 3 servers each, they do not transmit information to the other 3 servers.&lt;br /&gt;&lt;br /&gt;Ex. #3)&lt;br /&gt;&lt;br /&gt;Hub1-----------Hub2&lt;br /&gt; |              |&lt;br /&gt; | Leaf1        |-Leaf4&lt;br /&gt; |-Leaf2        |-Leaf5&lt;br /&gt; |-Leaf3        |-Leaf6&lt;br /&gt;&lt;br /&gt;Here both hubs are connected together, however Hub#1 is missing one server. This server can still be online but as long as it is not connected to the hub, only the users on that server will be able to see whats going on.&lt;br /&gt;2 · What do users see&lt;br /&gt;&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      When a server splits, users on each side of the split will see the other users disappear. The quit message would look something like "server1.xx.xx.dal.net server2.xx.xx.dal.net", where server1 and server2 are the servers that split from each other. However, the quit message may differ from client to client&lt;br /&gt;&lt;br /&gt;      Ex. #1)&lt;br /&gt;&lt;br /&gt;      Mystro (mystro@mystro.canshell.com) Quit (liberty.nj.us.dal.net vader.ny.us.dal.net)&lt;br /&gt;&lt;br /&gt;      where Vader is the server Mystro is on and liberty is the server you are connected to.&lt;br /&gt;&lt;br /&gt;      However, Mystro, on the other side of the netsplit would see something like this:&lt;br /&gt;&lt;br /&gt;      WhateverNick (someperson@someisp.com) Quit (vader.ny.us.dal.net liberty.nj.us.dal.net)&lt;br /&gt;&lt;br /&gt;      where liberty is the server you are on and Vader is the server Mystro is on.&lt;br /&gt;&lt;br /&gt;      (Just as a note, Vader is a hub on DALnet and does not allow connections from the public, I have used it for demonstration&lt;br /&gt;&lt;br /&gt;      purposes only).&lt;br /&gt;&lt;br /&gt;      Ex. #2)&lt;br /&gt;&lt;br /&gt;      Vader----------------Hub2&lt;br /&gt;       |                    |&lt;br /&gt;       |-Liberty            |-Leaf4&lt;br /&gt;       |-Leaf2              |-Leaf5&lt;br /&gt;       |-Leaf3              |-Leaf6&lt;br /&gt;&lt;br /&gt;      This is overall the same thing but it is easier to understand. Everyone on liberty will see as if Vader left them and everyone on Vader will see as if Liberty left them&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      In a case a network split occurs where 2 or more hubs split, the people will see it as if the hubs are the servers they are on.&lt;br /&gt;&lt;br /&gt;      Ex. #1)&lt;br /&gt;&lt;br /&gt;      Vader.ny.us.dal.net and Journey.ca.us.dal.netsplit. Vader is still holding liberty and Journey is holding the rest of the servers.&lt;br /&gt;&lt;br /&gt;      The quit message would look something like this:&lt;br /&gt;&lt;br /&gt;      Mystro (mystro@mystro.canshell.com) Quit (vader.ny.us.dal.net journey.ca.us.dal.net)&lt;br /&gt;&lt;br /&gt;      and vice versa from the other side.&lt;br /&gt;&lt;br /&gt;      Ex. #2)&lt;br /&gt;&lt;br /&gt;      An easier way to illustrate this is draw a diagram:&lt;br /&gt;&lt;br /&gt;      Vader           Journey&lt;br /&gt;       |                 |&lt;br /&gt;       |-Liberty         |-Leaf1&lt;br /&gt;                         |-Leaf2&lt;br /&gt;                         |-Leaf3&lt;br /&gt;&lt;br /&gt;      In this illustration you see that Vader has split from Journey. While Liberty is still connected to Vader, the rest of the network is gone. In this case I would see Vader and Journey split rather than Liberty and Journey.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Finally, when the servers reconnect, you are going to see a flood of people come in and the servers change modes in the channels so that everything gets back to how it was before the split.&lt;br /&gt;&lt;br /&gt;      Ex.&lt;br /&gt;&lt;br /&gt;      [16:22] *** user1 (user1@blah.com) has joined #blah&lt;br /&gt;&lt;br /&gt;      [16:22] *** user2 (user2@blah.com) has joined #blah&lt;br /&gt;&lt;br /&gt;      [16:22] *** user3 (user3@blah.com) has joined #blah&lt;br /&gt;&lt;br /&gt;      [16:22] *** user4 (user4@blah.com) has joined #blah&lt;br /&gt;&lt;br /&gt;      [16:22] *** user5 (user5@blah.com) has joined #blah&lt;br /&gt;&lt;br /&gt;      [16:22] *** liberty.nj.us.dal.net sets mode: +ovvv user1 user2 user3 user4&lt;br /&gt;&lt;br /&gt;      This would be something like what you would see when a server reconnected, the server which changes the modes in the channel will always be the one that left the network and than reconnected.&lt;br /&gt;&lt;br /&gt;3 · How are netsplits solved&lt;br /&gt;&lt;br /&gt;This is where the IRC operator comes into play. As soon as a netsplit occurs, a global message is sent out by the IRC server saying that it occurred, what server and why (read errors, timeouts etc...). Now, contrary to popular belief, IRCops do their job quite nicely and get to work on netsplits as soon as they can. IRC operators will right away try and reconnect the two or more servers to the rest of the network. Should this fail, they will try and reroute the servers to other hubs that contain C/N lines (linking lines without which you can not connect a server to another) for that server.&lt;br /&gt;4 · Dos and Don'ts during a netsplit.&lt;br /&gt;&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      The safest way to ride out a netsplit is to just stay where you are and wait for the servers to reconnect.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Do NOT try to connect to a split server in order to gain ops in any specific channels. First of all it will prove futile since DALnet's IRC servers do not let people gain ops in channels while a netsplit is in progress. Second of all, servers reset the settings to what they were before the split, in which case they will deop you as soon as the net gets back to normal. Thirdly, it will just get a lot of mad people staring at you, and no one likes that.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      If you do decide to switch servers, make sure you're switching to where most of the other users are, hence not a server which is linked to the current servers you are on. As well, I would suggest using a different nickname just in case either of the server is lagged and still records you as beeing on the server. Although as I said before, it's best if you stay just where you are and let everything get back to normal.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Do NOT bug IRCops if you see a netsplit, if they are active they will have seen it as well and if they aren't active there isn't much point in bugging them in the first place.&lt;br /&gt;&lt;br /&gt;5 · Glossary&lt;br /&gt;&lt;br /&gt;IRC&lt;br /&gt;&lt;br /&gt;    IRC stands for Internet Relay Chat, it allows thousands of users like you and me to chat with other thousands of users simultanously anywhere around the world.&lt;br /&gt;IRC operator&lt;br /&gt;&lt;br /&gt;    IRCop, also known as IRC Operator is a user with special access to the IRC Server, he is there to help run the server, fix net splits, deal with abusive users and much more. IRC operators are sometimes mistaken for 'Cops' 'mIRC Cops' or many other things. They are in no way cops. They are just your average human being who is on the network to make your stay more pleasant.&lt;br /&gt;Hub and Leaf&lt;br /&gt;&lt;br /&gt;    A 'hub' is a server that usually connects 2 or more servers together in order to form a web. A leaf on the other hand can not connect more than 1 server and in most cases, the leaf is connected to the hub.&lt;br /&gt;&lt;br /&gt;6 · Conclusion&lt;br /&gt;&lt;br /&gt;DALnet tries to make any IRCers' stay as pleasant as possible. If and when a netsplit occurs the administration (IRCops and Admins) get to work as soon as possible to fix it just so that IRCers' can have a pleasant chat. Unfortunately, no IRC network has the joy of lacking netsplits completely, and when a netsplit does occur, all we ask for is that you have some patience, ride it out and get back to doing whatever you were doing before :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-8326804941327519168?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/8326804941327519168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=8326804941327519168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/8326804941327519168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/8326804941327519168'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/netsplit-manual.html' title='Netsplit Manual'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-8172181116389567684</id><published>2008-03-20T19:34:00.001-07:00</published><updated>2008-04-01T10:04:00.279-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>Channel and User Modes</title><content type='html'>Channel and User Modes&lt;br /&gt;&lt;br /&gt;Version 1.2.1&lt;br /&gt;&lt;br /&gt;Last revised by PJKevin (kevinram_2002@hotmail.com) on 2005-11-20&lt;br /&gt;&lt;br /&gt;Originally written by LadyDana (ladydana@dal.net) on 2000-10-28&lt;br /&gt;&lt;br /&gt;Copyright © 2000-2005 by the DALnet IRC Network&lt;br /&gt;&lt;br /&gt;Please direct any comments or feedback about this document (only! no help requests!) to docs@dal.net. If you need help on issues not covered in this document, please see the information at http://help.dal.net.&lt;br /&gt;Introduction&lt;br /&gt;&lt;br /&gt;This document serves as a reference for all the user and channel modes supported by the DALnet IRCD (Internet Relay Chat Daemon). DALnet's IRCD is named Bahamut. More information on Bahamut can be obtained at http://bahamut.dal.net and #bahamut.&lt;br /&gt;&lt;br /&gt;An explanation is provided for each mode and in some cases, an example. Unless otherwise stated, modes are always modified through the /mode command.&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;&lt;br /&gt;/mode nickname +/- mode(s)&lt;br /&gt;/mode #channelname +/- mode(s) parameters&lt;br /&gt;&lt;br /&gt;You can only modify your own user mode. Only channel operators (@) have sufficient access to modify the modes for a channel.&lt;br /&gt;Contents&lt;br /&gt;&lt;br /&gt;    * 1 List of Modes&lt;br /&gt;    * 2 Channel Modes&lt;br /&gt;          o 2.1 +b&lt;br /&gt;          o 2.2 +c&lt;br /&gt;          o 2.3 +e&lt;br /&gt;          o 2.4 +i&lt;br /&gt;          o 2.5 +I&lt;br /&gt;          o 2.6 +j&lt;br /&gt;          o 2.7 +k&lt;br /&gt;          o 2.8 +l&lt;br /&gt;          o 2.9 +L&lt;br /&gt;          o 2.10 +m&lt;br /&gt;          o 2.11 +M&lt;br /&gt;          o 2.12 +n&lt;br /&gt;          o 2.13 +o&lt;br /&gt;          o 2.14 +O&lt;br /&gt;          o 2.15 +p&lt;br /&gt;          o 2.16 +r&lt;br /&gt;          o 2.17 +R&lt;br /&gt;          o 2.18 +s&lt;br /&gt;          o 2.19 +t&lt;br /&gt;          o 2.20 +v&lt;br /&gt;    * 3 User Modes&lt;br /&gt;          o 3.1 +i&lt;br /&gt;          o 3.2 +r&lt;br /&gt;          o 3.3 +R&lt;br /&gt;          o 3.4 +s&lt;br /&gt;          o 3.5 +w&lt;br /&gt;    * 4 User Modes (IRCops Only)&lt;br /&gt;          o 4.1 +o&lt;br /&gt;          o 4.2 +a&lt;br /&gt;          o 4.3 +A&lt;br /&gt;          o 4.4 +b&lt;br /&gt;          o 4.5 +c&lt;br /&gt;          o 4.6 +d&lt;br /&gt;          o 4.7 +e&lt;br /&gt;          o 4.8 +f&lt;br /&gt;          o 4.9 +F&lt;br /&gt;          o 4.10 +g&lt;br /&gt;          o 4.11 +h&lt;br /&gt;          o 4.12 +I&lt;br /&gt;          o 4.13 +j&lt;br /&gt;          o 4.14 +k&lt;br /&gt;          o 4.15 +K&lt;br /&gt;          o 4.16 +m&lt;br /&gt;          o 4.17 +n&lt;br /&gt;          o 4.18 +x/X&lt;br /&gt;          o 4.19 +y&lt;br /&gt;    * 5 Final Word&lt;br /&gt;&lt;br /&gt;1 · List of Modes&lt;br /&gt;&lt;br /&gt;When first connecting to DALnet, you will get a lot of information on the server that you are connecting to. The list of user and channel modes may be hidden amongst this information.&lt;br /&gt;&lt;br /&gt;Welcome to the DALnet IRC Network PJKevin!kevin@219.95.43.120&lt;br /&gt;Your host is mesra.kl.my.dal.net, running version bahamut-1.8(02)&lt;br /&gt;This server was created Sun Sep 19 2004 at 13:07:39 MYT&lt;br /&gt;mesra.kl.my.dal.net bahamut-1.8(02) aAbcdefFghiIjkKmnoOrRswxXy bceiIjklLmMnoOprRstv&lt;br /&gt;NETWORK=DALnet SAFELIST MAXBANS=100 MAXCHANNELS=20 CHANNELLEN=32 KICKLEN=307 NICKLEN=30 TOPICLEN=307 MODES=6 CHANTYPES=# CHANLIMIT=#:20 PREFIX=(ov)@+ STATUSMSG=@+ are available on this server&lt;br /&gt;&lt;br /&gt;The above is an example of what you might see when you first connect. What we are interested in are the two groups of letters right after the ircd version on the fourth line. aAbcdefFghiIjkKmnoOrRswxXy and bceiIjklLmMnoOprRstv.&lt;br /&gt;&lt;br /&gt;For this version of the IRCD, aAbcdefFghiIjkKmnoOrRswxXy are the user modes and bceiIjklLmMnoOprRstv are the channel modes. Each letter represents an option for a nick or a channel. Please note that this document is not necessarily based on this example.&lt;br /&gt;2 · Channel Modes&lt;br /&gt;&lt;br /&gt;Channel modes can only be modified by channel operators, which are those who have a @ next to their nickname. Certain channel modes require additional parameters along with the actual switch, others do not.&lt;br /&gt;&lt;br /&gt;It's also possible to combine several different mode changes in one command, provided you respect the order of the parameters. With Bahamut, six mode changes can be applied at once.&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;&lt;br /&gt;/mode #channelname +/- mode(s) parameters&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;&lt;br /&gt;/mode #peanutbutter +nt&lt;br /&gt;/mode #peanutbutter -ps&lt;br /&gt;/mode #peanutbutter +nt-R&lt;br /&gt;/mode #peanutbutter +ntv-obb MissPeanut BadTastingPeanut *!*@loving.peanutbutter.ca *!*@singing.in.moonlight.net&lt;br /&gt;2.1 +b&lt;br /&gt;&lt;br /&gt;+b stands for channel bans and allows a channel operator to deny a person (or a group of people) access to the channel. If someone is banned while in the channel, they will not be able to talk. This additional feature is known as the +bquiet mode, although the actual mode is still just +b. In addition /part messages will be supressed. However, this will not affect anyone having the except mode +e on his host which is discussed below.&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;&lt;br /&gt;/mode #channelname +/-b [hosts]&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/mode #peanutbutter +b-bb *!*@annoying.pest.com *!*@*.ca *!~@*.moonlight.net&lt;br /&gt;&lt;br /&gt;If you don't specify any hosts, you will be shown a list of channel bans, even if you're outside the channel.&lt;br /&gt;&lt;br /&gt;A more detailed document on banning is available at http://docs.dal.net/docs/banguide.html.&lt;br /&gt;2.2 +c&lt;br /&gt;&lt;br /&gt;The +c mode stands for colourless. It is a relatively new mode and is quite specific to DALnet at this time.&lt;br /&gt;&lt;br /&gt;If a message sent to the channel contains colour codes (supported by most IRC clients) or control codes (including bold, underline, reverse, etc.), the message will be blocked as if the channel was moderated for that person.&lt;br /&gt;2.3 +e&lt;br /&gt;&lt;br /&gt;+e stands for except which excepts users from the channel who match a hostmask in the banlist allowing them to join. When a hostmask is set in the except list,the mode +e overrides the ban on the user that matches the hostmask.&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;&lt;br /&gt;/mode #channelname +/-e [hosts]&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/mode #peanutbutter +e PJKevin!*@*.my&lt;br /&gt;&lt;br /&gt;In the above example, let's say there is an existing ban is set with the hostmask *!*@*.my. PJKevin's hostmask is PJKevin!kevin@brk32-kj.jaring.my. PJKevin will be able to join #peanutbutter because he has an exception with the mask PJKevin!*@*.my.&lt;br /&gt;2.4 +i&lt;br /&gt;&lt;br /&gt;Setting a channel to invite only will only allow those who have been invited to the channel (with the /invite command or in the channel's invite list) to join the channel.&lt;br /&gt;2.5 +I&lt;br /&gt;&lt;br /&gt;This mode allows a channel operator to set a list of users who are allowed to join a +i (invite only) channel.&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;&lt;br /&gt;/mode #channelname +/-I [hosts]&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/mode #peanutbutter +I PJKevin!*@*.my&lt;br /&gt;&lt;br /&gt;In the above example, PJKevin will be allowed to join the channel even if the channel is +i with the hostmask PJKevin!kevin@brk32-kj.jaring.my since it matches an invite entry.&lt;br /&gt;&lt;br /&gt;Note: Please note that this mode does not override bans set in the channel.&lt;br /&gt;2.6 +j&lt;br /&gt;&lt;br /&gt;The +j mode is used for Channel join throttling. It is useful to control join floods by determining the N number of users to join in S seconds.&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;&lt;br /&gt;/mode #channelname +/-j N:S&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/mode #peanutbutter +j 4:5&lt;br /&gt;&lt;br /&gt;In the above example, #peanutbutter has been set +j with the throttle value of 4 users in 5 seconds. The first value may not be set lower then 4 after bahamut version 1.8.3.&lt;br /&gt;2.7 +k&lt;br /&gt;&lt;br /&gt;The key of the channel is a word that you must specify in your /join command when attempting to enter the channel. If the key was incorrect or if no key was specified then you will be denied access to this channel.&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;&lt;br /&gt;/mode #channelname +/-k key&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/mode #peanutbutter +k jam&lt;br /&gt;&lt;br /&gt;Anybody joining the channel will need to use the /join #channelname key command. In our case, it would be /join #peanutbutter jam.&lt;br /&gt;2.8 +l&lt;br /&gt;&lt;br /&gt;The channel limit allows you to specify the maximum number of users who can be in the channel at a time. Once this number has been reached, anyone who attempts to join the channel will receive an error message of the channel being full.&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;&lt;br /&gt;/mode #channelname +/-l number&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/mode #peanutbutter +l 25&lt;br /&gt;2.9 +L&lt;br /&gt;&lt;br /&gt;The +L mode is currently not used for anything on DAL.net although it is implemented into the current releases of the Bahamut IRCD. +L is moderated /list. If switched on, only channels with +L will appear in the /list. The +L mode has been reserved for future.&lt;br /&gt;2.10 +m&lt;br /&gt;&lt;br /&gt;A moderated channel only allows the ops (@) and voices (+) to send messages to the channel. All other messages will be blocked.&lt;br /&gt;&lt;br /&gt;Anyone who is present in a moderated channel and who is not an op or voice there will also be prevented from changing their nickname.&lt;br /&gt;2.11 +M&lt;br /&gt;&lt;br /&gt;+M stands for only registered nicks may talk. Similar to the +R mode only those who are using and have identified to their current nick name (in other words, those who are set to umode +r) are allowed to speak in the channel although anybody may join. Unregistered nicks who are on a channel after +M is set will lose the ability to send messages to the channel until they become umode +r. See section section 3.2.&lt;br /&gt;2.12 +n&lt;br /&gt;&lt;br /&gt;The +n stands for no external messages. If +n is not set then it's possible for someone to send messages to the channel even if they are not present inside the channel.&lt;br /&gt;2.13 +o&lt;br /&gt;&lt;br /&gt;A channel operator is designated by the @ next to their nick. This @ translates into the giving and removal of the +o mode. Some IRC clients may use a symbol other than @ for pointing out channel ops, however they are far and few in between. ;)&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;&lt;br /&gt;/mode #channelname +/-o nickname(s)&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/mode #peanutbutter +oo-o MissPeanut PeanutButterLover CheekyBrat&lt;br /&gt;&lt;br /&gt;A channel operator has the ability to kick/ban people from the channel in addition to being one of the only ones who can change the channel modes of the channel.&lt;br /&gt;2.14 +O&lt;br /&gt;&lt;br /&gt;The +O mode stands for oper only. Basically, it only allows those with umode +o (IRC Operators) to join the channel. This mode can only be set by an IRC Operator.&lt;br /&gt;2.15 +p&lt;br /&gt;&lt;br /&gt;A private channel is not shown on the WHOIS output unless the person requesting the WHOIS is also on the channel.&lt;br /&gt;2.16 +r&lt;br /&gt;&lt;br /&gt;The +r mode can only be set by services itself and indicates that the channel in question is registered with ChanServ. This mode has been removed.&lt;br /&gt;2.17 +R&lt;br /&gt;&lt;br /&gt;+R stands for registered nicknames only. As its name implies, only those who are using and have identified to their current nickname (in other words, those who are set to umode +r) are allowed to enter the channel. For informations to umode +r see section section 3.2.&lt;br /&gt;2.18 +s&lt;br /&gt;&lt;br /&gt;A secret channel is not shown on the WHOIS output unless the person requesting the WHOIS is also on the channel. In addition to this, a secret channel doesn't show up on a channel LIST request either.&lt;br /&gt;&lt;br /&gt;There's no need to set the +p mode if you already have +s set, as it would be redundant. See section section 2.15.&lt;br /&gt;2.19 +t&lt;br /&gt;&lt;br /&gt;When +t is set, only the ops of the channel can change the topic.&lt;br /&gt;2.20 +v&lt;br /&gt;&lt;br /&gt;As already mentioned above, when a channel is moderated (+m, see section section 2.10), only the channel ops and the channel voices can send messages to the channel. Only channel ops can add or remove voices.&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;&lt;br /&gt;/mode #channelname +/-v nickname(s)&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/mode #peanutbutter +vv-v MissPeanut PeanutButterLover CheekyBrat&lt;br /&gt;&lt;br /&gt;It should be noted that in many places, voiced users are considered as the friends of the ops and are often treated as ops in training. This is, however, not true for all channels.&lt;br /&gt;3 · User Modes&lt;br /&gt;&lt;br /&gt;User modes allow you to configure a number of things while on IRC. You can use them to specify how easy it will be for other people to find you, what kind of information the IRC server should pass on to you, etc. They are also commonly referred to as umodes.&lt;br /&gt;&lt;br /&gt;Modes are generally set through the /mode command.&lt;br /&gt;&lt;br /&gt;/mode nickname +/- mode(s)&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;&lt;br /&gt;/mode PeanutButterLover +iws&lt;br /&gt;/mode PeanutButterLover -k&lt;br /&gt;/mode PeanutButterLover +i-s&lt;br /&gt;&lt;br /&gt;You can only change your own user modes: therefore, the nickname will always stand for the nick that you are using at the time.&lt;br /&gt;3.1 +i&lt;br /&gt;&lt;br /&gt;+i is also known as the invisible mode. While it does not actually make you invisible on IRC, it can make you quite a bit more difficult to find. To put it briefly, the invisible mode prevents people from finding you unless they know your exact nickname or are on the same channel as you. Please note that a lot of servers actually set you to +i automatically when you first connect.&lt;br /&gt;&lt;br /&gt;When not set to +i, a fellow user can locate you through the /who or through the /names #channelname command. IRC Operators also have the ability to see someone regardless of whether they are invisible or not.&lt;br /&gt;3.2 +r&lt;br /&gt;&lt;br /&gt;The +r mode can only be set by services itself and indicates that you are using and have identified to a registered nickname.&lt;br /&gt;&lt;br /&gt;When using the /whois command on someone who is set to +r, an extra line will appear in the WHOIS output, indicating that they have identified to the nickname they are using.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;MissPeanut is janice@peanutty.yummy.com * Peanut Butter is the best!&lt;br /&gt;MissPeanut is on @#PeanutButter +#PeanutB&lt;br /&gt;MissPeanut is on coast.fl.us.dal.net&lt;br /&gt;MissPeanut has identified for this nick&lt;br /&gt;3.3 +R&lt;br /&gt;&lt;br /&gt;The +R mode can be set by any connect client and does not allow a client who is not umode +r to message the client. See section section 3.2 This includes private messages and CTCPs. A +R client will be able to receive messages from +o clients.See section section 4.1&lt;br /&gt;3.4 +s&lt;br /&gt;&lt;br /&gt;Setting yourself +s is a request to the server to send you all the generic server messages and information about oper kills. This can turn into quite a flood.&lt;br /&gt;3.5 +w&lt;br /&gt;&lt;br /&gt;Wallops are network wide messages sent by IRC Operators to each other. Any user who is set to +w will also be able to observe the conversation. Wallops have become quite extinct on DALnet and are rarely sent.&lt;br /&gt;4 · User Modes (IRCops Only)&lt;br /&gt;&lt;br /&gt;The rest of the modes are only available to IRC Operators.&lt;br /&gt;4.1 +o&lt;br /&gt;&lt;br /&gt;The +o mode designates whether someone is an IRC Operator or not and is just about the only mode that cannot be obtained through the /mode command.&lt;br /&gt;&lt;br /&gt;The command for a valid IRC Operator to "oper up" is:&lt;br /&gt;&lt;br /&gt;/oper nickname oper password&lt;br /&gt;&lt;br /&gt;While obtaining the +o mode may be done through a different command, the /mode is still used for "deopering", in other words to remove the IRC Operator priviledges.&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;&lt;br /&gt;/mode nickname -o&lt;br /&gt;&lt;br /&gt;When opered, the WHOIS output of the IRCop reflects their status. Some servers may have modified their server theme to change the standard message, however, it should still be evident.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;MissPeanut is janice@peanutty.yummy.com * Peanut Butter is the best!&lt;br /&gt;MissPeanut is on @#PeanutButter +#PeanutB&lt;br /&gt;MissPeanut is on coast.fl.us.dal.net&lt;br /&gt;MissPeanut is an IRC Operator&lt;br /&gt;MissPeanut has identified for this nick&lt;br /&gt;&lt;br /&gt;It is beyond the scope of the document to explain how the oper passwords are set up or what the requirements for being a "valid" IRC Operator is. Suffice it to say that not just anyone can "oper up".&lt;br /&gt;4.2 +a&lt;br /&gt;&lt;br /&gt;Will allow the use of the /samode command in addition to adding a line of the IRC Operator's WHOIS output, designating them as a Services Administrator.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;MissPeanut is janice@peanutty.yummy.com * Peanut Butter is the best!&lt;br /&gt;MissPeanut is on @#PeanutButter +#PeanutB&lt;br /&gt;MissPeanut is on coast.fl.us.dal.net&lt;br /&gt;MissPeanut is an IRC Operator - Services Administator&lt;br /&gt;MissPeanut has identified for this nick&lt;br /&gt;4.3 +A&lt;br /&gt;&lt;br /&gt;Adds a line of the IRC Operator's WHOIS output, designating them as a Server Administrator. Server Administators have the ability to see +s (secret) and +p (private) channels. Server Administrators are also automatically set to +a.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;MissPeanut is janice@peanutty.yummy.com * Peanut Butter is the best!&lt;br /&gt;MissPeanut is on @#PeanutButter +#PeanutB&lt;br /&gt;MissPeanut is on coast.fl.us.dal.net&lt;br /&gt;MissPeanut is an IRC Operator - Server Administator&lt;br /&gt;MissPeanut has identified for this nick&lt;br /&gt;4.4 +b&lt;br /&gt;&lt;br /&gt;Allows an IRC Operator to view oper chatop messages.&lt;br /&gt;4.5 +c&lt;br /&gt;&lt;br /&gt;The +c mode entitles IRC Operators to receive a notice everytime someone connects to or disconnects from the server they are on. Due to the large number of users on DALnet, this mode is rarely used these days as it would cause an enormous flood.&lt;br /&gt;4.6 +d&lt;br /&gt;&lt;br /&gt;Allows for viewing of debug messages.&lt;br /&gt;4.7 +e&lt;br /&gt;&lt;br /&gt;+e is strongly related to the DCCALLOW feature and will display any file transfers that were stopped at the server level.&lt;br /&gt;4.8 +f&lt;br /&gt;&lt;br /&gt;The +f is a mode that alerts an IRC Operator everytime someone on their server gets flooded or gets disconnected for excess flood. Channels that are protected by the built-in flood protection will also be pointed out whenever the flood protection triggers.&lt;br /&gt;4.9 +F&lt;br /&gt;&lt;br /&gt;Can bypass the ircd's recvq throttling.&lt;br /&gt;4.10 +g&lt;br /&gt;&lt;br /&gt;Allows an IRC Operator to view oper globop messages. This mode can actually be set by a normal user but it won't do anything for them. Originally, +g was used for global messages. However, with the arrival of Bahamut, it was changed to the flag for globops instead.&lt;br /&gt;4.11 +h&lt;br /&gt;&lt;br /&gt;+h is also referred to as the "helpful" mode. When set, an IRC Operator will show up in a /stats p request on their server along with their idle time.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;MissPeanut (janice@peanutty.yummy.com) Idle: 30555&lt;br /&gt;PeanutButterLover (butter@loving.peanutbutter.ca) Idle: 46&lt;br /&gt;2 OPERs&lt;br /&gt;End of /STATS report.&lt;br /&gt;4.12 +I&lt;br /&gt;&lt;br /&gt;+I hides the server info. Which means that the server part will not be displayed in a /whois output.&lt;br /&gt;4.13 +j&lt;br /&gt;&lt;br /&gt;Setting yourself +j is a request to the server to send you rejected drone connection notices.&lt;br /&gt;4.14 +k&lt;br /&gt;&lt;br /&gt;The +k stands for KILL messages and it will instruct the server to send you all the server kill messages. This can cause quite a flood though.&lt;br /&gt;4.15 +K&lt;br /&gt;&lt;br /&gt;Setting yourself +K is a request to the server to send you kill notices from U:lined servers.&lt;br /&gt;4.16 +m&lt;br /&gt;&lt;br /&gt;Reports possible spambots and failed targets.&lt;br /&gt;4.17 +n&lt;br /&gt;&lt;br /&gt;Once +n is set, the IRC Operator in question will be able to view server routing notices.&lt;br /&gt;4.18 +x/X&lt;br /&gt;&lt;br /&gt;+x/X is used for Squelch and Silent Squelch. Stops a user transmitting, for example it stops their PRIVMSG. Only settable by U:lined servers.&lt;br /&gt;4.19 +y&lt;br /&gt;&lt;br /&gt;The +y mode enables an IRC Operator to see certain commands sent from an user or another IRCop. Most notibly, stats/links/admin requests are displayed.&lt;br /&gt;5 · Final Word&lt;br /&gt;&lt;br /&gt;Finally, it should be noted that there are a lot of different IRCDs out there these days. While there are a lot of modes common to the large majority of IRCDs, the various user and channel modes can vary quite significantly from network to network.&lt;br /&gt;&lt;br /&gt;This reference was written for the DALnet IRCD, Bahamut, Version 1.8.* and should not be directly applied to other IRCDs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-8172181116389567684?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/8172181116389567684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=8172181116389567684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/8172181116389567684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/8172181116389567684'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/channel-and-user-modes.html' title='Channel and User Modes'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-500616491887546971</id><published>2008-03-20T19:33:00.001-07:00</published><updated>2008-04-01T10:04:00.280-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>Services and IRCop Impersonators</title><content type='html'>Services and IRCop Impersonators&lt;br /&gt;&lt;br /&gt;Version 1.0.2&lt;br /&gt;&lt;br /&gt;Last revised by Fredfred (Fredfred@dal.net) on 2005-11-12&lt;br /&gt;&lt;br /&gt;Originally written by Kzoo (kzoo@dal.net), LadyDana (ladydana@dal.net), and Pyr0s (pyr0s@dal.net) on 2001-01-22&lt;br /&gt;&lt;br /&gt;Copyright © 2001-2005 by the DALnet IRC Network&lt;br /&gt;&lt;br /&gt;Please direct any comments or feedback about this document (only! no help requests!) to docs@dal.net. If you need help on issues not covered in this document, please see the information at http://help.dal.net.&lt;br /&gt;Introduction&lt;br /&gt;&lt;br /&gt;New DALnet users are sometimes tricked into giving their passwords to someone posing as DALnet Services or as an IRC Operator. Services Impersonators attempt to fool users by sending out notices that resemble the ones used by the real DALnet Services whereas fake IRC Operators use intimidation. In both cases, they play on the new user's lack of experience. Sometimes users need help and seek it from somebody who is not an actual IRCop. They might then give away passwords and other information to the wrong person.&lt;br /&gt;&lt;br /&gt;The purpose of this document is to show how to recognize the real DALnet services or a real IRCop. It will also give you an idea of what things to look out for when identifying impostors.&lt;br /&gt;Contents&lt;br /&gt;&lt;br /&gt;    * 1 Services Impersonators&lt;br /&gt;          o 1.1 Ways to Identify to NickServ&lt;br /&gt;          o 1.2 Ways to Identify to ChanServ&lt;br /&gt;          o 1.3 Auto-Identification Scripts&lt;br /&gt;          o 1.4 'Fake' DALnet Services Ploys&lt;br /&gt;    * 2 IRCop Impersonators&lt;br /&gt;          o 2.1 Telling Passwords&lt;br /&gt;          o 2.2 How to Tell an IRC Operator?&lt;br /&gt;          o 2.3 'Fake' IRC Operator Ploys&lt;br /&gt;          o 2.4 In Summary&lt;br /&gt;    * 3 Frequently Asked Questions&lt;br /&gt;&lt;br /&gt;1 · Services Impersonators&lt;br /&gt;&lt;br /&gt;Users who want to steal nickname passwords often try to impersonate DALnet Services and ask you for your passwords in private. If you don't want to lose your nickname, there are a few things that you must absolutely take into consideration.&lt;br /&gt;&lt;br /&gt;First of all, you should never use your DALnet password on another network and you should change it on a regular basis - just don't forget it. :)&lt;br /&gt;&lt;br /&gt;Many users have lost their nicknames in the past after joining another network and giving out their password to Services on that network.&lt;br /&gt;&lt;br /&gt;It may also be a good idea to type out commands in the Status window (if you have one) so that you will not accidentally give away your passwords to an open channel or to a private chat window.&lt;br /&gt;&lt;br /&gt;Secondly, it is very important that you learn how to recognize fake Services on DALnet.&lt;br /&gt;1.1 Ways to Identify to NickServ&lt;br /&gt;&lt;br /&gt;There are many ways to identify to DALnet Services; some are secure, some are not. Let's take a look at what Nickserv teaches you to do.&lt;br /&gt;&lt;br /&gt;If you use a registered nickname, you will get:&lt;br /&gt;&lt;br /&gt;-NickServ- This nick is owned by someone else. Please choose another.&lt;br /&gt;-NickServ- If this is your nick, type: /msg NickServ@services.dal.net IDENTIFY password&lt;br /&gt;&lt;br /&gt;The ENFORCE option is now set by default after the complete nickname registration. If you have the ENFORCE option turned on then you will see a third line:&lt;br /&gt;&lt;br /&gt;-NickServ- Your nick will be changed in 60 seconds if you do not comply.&lt;br /&gt;&lt;br /&gt;Therefore, you should use:&lt;br /&gt;&lt;br /&gt;/msg NickServ@services.dal.net IDENTIFY password&lt;br /&gt;&lt;br /&gt;or one of the other built-in commands for identifying to NickServ.&lt;br /&gt;&lt;br /&gt;These built-in commands are:&lt;br /&gt;&lt;br /&gt;/nickserv IDENTIFY password&lt;br /&gt;/identify password&lt;br /&gt;/services IDENTIFY password&lt;br /&gt;&lt;br /&gt;For those who wish to identify to a nick that they are not using at the time, these variations are available:&lt;br /&gt;&lt;br /&gt;/nickserv IDENTIFY nick password&lt;br /&gt;/identify nick password&lt;br /&gt;/services IDENTIFY nick password&lt;br /&gt;&lt;br /&gt;Please keep in mind that your IRC client may prevent you from using one of the above mentioned built-in commands. In those cases, we advise you to use the /quote prefix in order to send your identification command directly to the server.&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;&lt;br /&gt;/quote nickserv IDENTIFY password&lt;br /&gt;/quote identify password&lt;br /&gt;/quote services IDENTIFY password&lt;br /&gt;&lt;br /&gt;Finally, remember these commands and do not use any other variations. DALnet is not going to change NickServ to another name. If you are in doubt about this, you can always ask in one of the DALnet help channels such as #DALnetHelp, #Help or #IRCHelp.&lt;br /&gt;1.2 Ways to Identify to ChanServ&lt;br /&gt;&lt;br /&gt;As with NickServ, the standard way to identify to ChanServ would be:&lt;br /&gt;&lt;br /&gt;/msg chanserv@services.dal.net IDENTIFY #channel password&lt;br /&gt;&lt;br /&gt;There are also the three built-in commands:&lt;br /&gt;&lt;br /&gt;/chanserv IDENTIFY #channel password&lt;br /&gt;/identify #channel password&lt;br /&gt;/services IDENTIFY #channel password&lt;br /&gt;&lt;br /&gt;Once again, if you run into problems with your IRC client then use the /quote prefix to get around the limitation:&lt;br /&gt;&lt;br /&gt;/quote chanserv IDENTIFY #channel password&lt;br /&gt;/quote identify #channel password&lt;br /&gt;/quote services IDENTIFY #channel password&lt;br /&gt;&lt;br /&gt;If you are not sure about something then go to one of the DALnet help channels and ask. #DALnetHelp, #Help and #IRCHelp are always available to you.&lt;br /&gt;1.3 Auto-Identification Scripts&lt;br /&gt;&lt;br /&gt;DALnet does not support or encourage the use of auto-identification scripts. Scripts are tricky things. There are many people who attempt to steal passwords by providing a script that slips them a constant report of what you are doing while chatting on-line.&lt;br /&gt;&lt;br /&gt;In addition, it is quite easy for someone else who has access to your script to retrieve the password. It has also happened that users have accidentally sent out their nickname and channel passwords to other users when they wanted to share their scripts.&lt;br /&gt;&lt;br /&gt;An insecure script may also send the password to a services impersonator instead of the real Services.&lt;br /&gt;1.4 'Fake' DALnet Services Ploys&lt;br /&gt;&lt;br /&gt;Frequently, impostors try to impersonate DALnet Services. The most popular way is to use a nickname with a very similar spelling to the actual Services. Before we continue, you should have a good idea of what the real Services look like.&lt;br /&gt;&lt;br /&gt;NickServ is service@dal.net * Nick Registration Service&lt;br /&gt;NickServ using services.dal.net DALnet services home base&lt;br /&gt;NickServ End of /WHOIS list.&lt;br /&gt;&lt;br /&gt;ChanServ is service@dal.net * Channel Registration Service&lt;br /&gt;ChanServ using services.dal.net DALnet services home base&lt;br /&gt;ChanServ End of /WHOIS list.&lt;br /&gt;&lt;br /&gt;Note: It is normal to see ChanServ on different channels every time you /whois ChanServ, as it constantly joins channels to masskick. For example:&lt;br /&gt;&lt;br /&gt;ChanServ on @#randomchannel #Dragonrealm #chatzone&lt;br /&gt;&lt;br /&gt;Services Impersonators will attempt to deceive you by adopting nicks and Real Name fields that are similar to one actually used by Services. The following would be a good example:&lt;br /&gt;&lt;br /&gt;NickSrve is service@mc-38-214.tm.net.my * Nick Registration Service&lt;br /&gt;NickSrve using twisted.ma.us.dal.net Global NAPs - Quincy, MA&lt;br /&gt;NickSrve End of /WHOIS list.&lt;br /&gt;&lt;br /&gt;Since they want to trick you into giving out their password, they will send out notices that are similar to, or exactly like the ones sent out by Services:&lt;br /&gt;&lt;br /&gt;-NickSeve- This nick is owned by someone else. Please choose another.&lt;br /&gt;-NickSeve- If this is your nick, type: /msg NickSeve IDENTIFY password&lt;br /&gt;-NickSeve- Your nick will be changed in 60 seconds if you do not comply.&lt;br /&gt;&lt;br /&gt;There are myriad nicks that Services impersonators come up with every day. It is impossible to list them all, however, you should always be wary of anything that asks you to use a command not mentioned previously in section 1.1. Another good way of recognizing Services impersonators is to note which server they are on. The real DALnet Services will always be located on services.dal.net.&lt;br /&gt;&lt;br /&gt;On occasion, Services Impersonators will go one step further by claiming that your nick or channel will drop unless you identify to them or that they are some type of "back-up" services. Do not pay them any attention. You can always ask in one of the help channels if you feel they sound genuine.&lt;br /&gt;2 · IRCop Impersonators&lt;br /&gt;&lt;br /&gt;In addition to users who pretend to be Services, there are also a lot of users around who pretend to be IRC Operators. They may resort to threats ("you will be klined" is a popular one) in order to intimidate you or they may act helpful in order to trick information out of you. Either way, they do not have your best interests at heart.&lt;br /&gt;2.1 Telling Passwords&lt;br /&gt;&lt;br /&gt;Never tell your password to someone who messages you and asks for it. DALnet staff do not message users and ask for passwords. DALnet will not send you mail and ask for passwords. If you get a sudden message asking for a password, you can assume it is not for a good reason.&lt;br /&gt;2.2 How to Tell an IRC Operator?&lt;br /&gt;&lt;br /&gt;When a person is given IRC Operator privileges, it is written into the IRCd of a particular server. The IRCd is a program which coordinates everything that happens on DALnet with all the other servers. It has various other functions which are not important to this document. Because the IRC Operator privileges are written into the IRCD, it recognizes the IRC Operator when this Operator issues a special command. This is often called 'opering up'. When an IRC Operator 'opers up', the IRCD recognizes the privileges this person has and adds a separate line to the IRC Operator's /whois. This line is by itself and says,&lt;br /&gt;&lt;br /&gt;Heathcliff is an IRC Operator&lt;br /&gt;&lt;br /&gt;When you look at all the information for someone you think may be an IRC Operator, it would look something like this:&lt;br /&gt;&lt;br /&gt;Heathcliff is moi@pp326.sometimes.net * Wherever you go, there you are.&lt;br /&gt;Heathcliff using jade.va.us.dal.net Hell hath no fury like a woman scorned for Sega.&lt;br /&gt;Heathcliff has identified for this nick&lt;br /&gt;Heathcliff is an IRC Operator - Services Administrator&lt;br /&gt;Heathcliff End of /WHOIS list.&lt;br /&gt;&lt;br /&gt;If you do not see that line by itself in a /whois, someone is trying to fool you. If you think that perhaps this person might be an IRC Operator, ask him or her to 'oper up' and then look for that line in the /whois. If it doesn't show, run quickly in another direction and put this person on ignore if they continue to bother you.&lt;br /&gt;2.3 'Fake' IRC Operator Ploys&lt;br /&gt;&lt;br /&gt;There are many ways someone may try to appear to be an IRC Operator. One of the most frequent is to have the word 'oper' in his or her nick or username. Here are some examples.&lt;br /&gt;&lt;br /&gt;OperHelper is IRCop@DL34.really.net * IRC Operator&lt;br /&gt;&lt;br /&gt;IRCopper is oper@23673.pretend.net * I'm a IRCop and I'm gonna get you&lt;br /&gt;&lt;br /&gt;Another thing a fake oper might do is to put an away message in his or her /whois to try to simulate the statement on a single line. An example of this might be,&lt;br /&gt;&lt;br /&gt;OperMan is MircOper@ppp317.wonderful.net * Your busy IRC Operator&lt;br /&gt;OperMan using jade.va.us.dal.net Hell hath no fury like a woman scorned for Sega.&lt;br /&gt;OperMan is away: IRC Operator - Services Administrator&lt;br /&gt;OperMan has been idle 18mins 12secs, signed on Sat Oct 21 19:12:13&lt;br /&gt;OperMan End of /WHOIS list.&lt;br /&gt;&lt;br /&gt;Look at the difference between these lines.&lt;br /&gt;&lt;br /&gt;Heathcliff is an IRC Operator - Services Administrator (the real thing)&lt;br /&gt;&lt;br /&gt;OperMan is away: IRC Operator - Services Administrator (a fake)&lt;br /&gt;&lt;br /&gt;Notice the : after the word 'away'. This person has set an away message to try to look like a real oper. Notice also that this user has not identified to that nick. It probably isn't registered. There are some nicks which have been abused so much by people pretending to be opers, that they are no longer permitted to be registered. You may also have seen that this person seems to be bragging about being an IRC operator in just about any way he can. Real opers don't have the need for all this bragging. The single line says it all.&lt;br /&gt;2.4 In Summary&lt;br /&gt;&lt;br /&gt;There are some not-so-nice users who pretend to be IRC Operators. They sometimes do that to intimidate, and sometimes to get passwords from people so they can take over nicks and channels. Users need to know how to protect themselves against such nasty users.&lt;br /&gt;&lt;br /&gt;DALnet personnel will not message you and ask for a password. If this happens, do not give it.&lt;br /&gt;&lt;br /&gt;DALnet will not mail you and ask you for your password. If this happens, do not give it.&lt;br /&gt;&lt;br /&gt;If you are approached by someone who claims to be an IRC Operator, do a /whois nick command.&lt;br /&gt;&lt;br /&gt;In the information, look for a separate line that says So-and-So is an IRC Operator.&lt;br /&gt;&lt;br /&gt;Be sure there is not an away message made to look like the person is an IRC Operator.&lt;br /&gt;&lt;br /&gt;Never give your password to anyone.&lt;br /&gt;3 · Frequently Asked Questions&lt;br /&gt;&lt;br /&gt;Q: Where can I report an IRCop or Services Impersonator?&lt;br /&gt;&lt;br /&gt;    A: You can report the incident in #OperHelp or find an IRCop personally by following the instructions at http://docs.dal.net/docs/findoper.html.&lt;br /&gt;Q: Is there any one simple thing that I can use to identify a Services Impersonator?&lt;br /&gt;&lt;br /&gt;    A: Yes. If they are using a nick other than NickServ or ChanServ then they are not the real thing. Services are always going to be on the server services.dal.net as well.&lt;br /&gt;Q: I lost my nick/channel to a Services Impersonator. Can you give it back to me?&lt;br /&gt;&lt;br /&gt;    A: No. We consider password security to be your own responsibility. There are simply way too many users for DALnet to watch over your shoulder every time you do something. We do our best by providing you with resources such as warnings, documents and staff in the DALnet owned help channels. Think of this as a lesson... you will not make the same mistake again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-500616491887546971?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/500616491887546971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=500616491887546971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/500616491887546971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/500616491887546971'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/services-and-ircop-impersonators.html' title='Services and IRCop Impersonators'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-2913869242547146119</id><published>2008-03-20T19:32:00.000-07:00</published><updated>2008-04-01T10:04:00.280-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>DALnet Password Guide</title><content type='html'>DALnet Password Guide&lt;br /&gt;&lt;br /&gt;Version 2.1.1&lt;br /&gt;&lt;br /&gt;Last revised by Fredfred (Fredfred@dal.net) on 2005-11-03&lt;br /&gt;&lt;br /&gt;Originally written by Drakkar (drakkar@dal.net) on 1997-02-26&lt;br /&gt;&lt;br /&gt;Copyright © 1997-2005 by the DALnet IRC Network&lt;br /&gt;&lt;br /&gt;Please direct any comments or feedback about this document (only! no help requests!) to docs@dal.net. If you need help on issues not covered in this document, please see the information at http://help.dal.net.&lt;br /&gt;Introduction&lt;br /&gt;&lt;br /&gt;This is a basic tutorial on DALnet nickname and channel passwords. In addition to explaining the password commands, it also explains how to choose a good password, and offers other advice. It is useful to know how to pick a good password not only for DALnet, but for wherever you may need one.&lt;br /&gt;Contents&lt;br /&gt;&lt;br /&gt;    * 1 NickServ and ChanServ Password Commands&lt;br /&gt;    * 2 Choosing a Password&lt;br /&gt;    * 3 Identifying to NickServ and ChanServ&lt;br /&gt;    * 4 If You Forget Your Password&lt;br /&gt;    * 5 Losing Your Nicknames and/or Channels&lt;br /&gt;&lt;br /&gt;1 · NickServ and ChanServ Password Commands&lt;br /&gt;&lt;br /&gt;The first thing to discuss is the syntax for nickname and channel registration with DALnet's Services.&lt;br /&gt;&lt;br /&gt;For Nickname Registration, the command would be:&lt;br /&gt;&lt;br /&gt;/nickserv register Password EmailAddress&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;/msg nickserv@services.dal.net register Password EmailAddress&lt;br /&gt;&lt;br /&gt;Note: Your nickname is not required, as NickServ registers the nickname you are currently using. Also, be sure to enter a valid E-Mail address, as you will be sent a confirmation email.&lt;br /&gt;&lt;br /&gt;You can obtain more detailed instructions at http://docs.dal.net/docs/nsemail.html.&lt;br /&gt;&lt;br /&gt;For Channel Registration, the command would be:&lt;br /&gt;&lt;br /&gt;/chanserv register #channel Password Description&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;/msg chanserv@services.dal.net register #channel Password Description&lt;br /&gt;&lt;br /&gt;Note: Description can be a phrase which describes the channel. It may be anything, but must be included.&lt;br /&gt;&lt;br /&gt;You can obtain more detailed instructions at http://docs.dal.net/docs/chanserv.html.&lt;br /&gt;2 · Choosing a Password&lt;br /&gt;&lt;br /&gt;There are some criteria for what can and cannot be used as a password by Services. These include:&lt;br /&gt;&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Passwords must be one word, without any spaces included.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      You cannot use your nickname as a password for your nickname.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      You cannot use the word "password" as your password.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Passwords can be up to 64 characters in length.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Passwords cannot begin with a colon.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Passwords cannot contain any characters &lt; 33 on the ASCII chart (control characters).&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Passwords are case sensitive, meaning that if you use capital letters in your password when you register, you need to use the same when identifying.&lt;br /&gt;&lt;br /&gt;There are several things to keep in mind when choosing a password for your nickname and channel. We will discuss these one by one:&lt;br /&gt;&lt;br /&gt;   1.&lt;br /&gt;&lt;br /&gt;      Do not use your real name, address, phone number, or other personal information as a password. These will most likely be the first things tried for guessing your password.&lt;br /&gt;   2.&lt;br /&gt;&lt;br /&gt;      Adding a number or letter to the front or end of your nickname as a password is a little more secure than using your real name, but is still a bad idea for a password. e.g. &lt;Jonathon&gt; /nickserv register Jonathon1 email@address.com&lt;br /&gt;   3.&lt;br /&gt;&lt;br /&gt;      A password should not be in English, or even a real word if possible. There are programs available that will check through every word in a dictionary to see if the password is one of those. While DALnet's Services have extensive flood protection which largely prevents this type of password cracking, this is still a good idea for passwords in general.&lt;br /&gt;   4.&lt;br /&gt;&lt;br /&gt;      Using various pattens of capital letters and characters in your password will make it harder to guess for those trying to break your code, since it increases the possible variations. For example: using "Goober" is good, but using "gOoBEr" is better.&lt;br /&gt;   5.&lt;br /&gt;&lt;br /&gt;      In addition to using capital letters, you can also use special character such as ASCII characters. Obviously you will need to make a note of the password as it will be harder to remember. An example would be using (ALT+171) in your password as opposed to 1/2.&lt;br /&gt;   6.&lt;br /&gt;&lt;br /&gt;      Characters in other languages, such as èc), are accepted.&lt;br /&gt;   7.&lt;br /&gt;&lt;br /&gt;      The best kind of password is a totally random string of characters, but they are hard to remember unless written down. If you do choose a random set of characters, it would be best to choose something that is seemingly random, but means something to you.&lt;br /&gt;   8.&lt;br /&gt;&lt;br /&gt;      Some users like to re-use passwords for all their nicks and channels. While this is easy to remember, it also makes it easy for somebody to gain access to all of your nicks and channels, if they gain access to your one password.&lt;br /&gt;   9.&lt;br /&gt;&lt;br /&gt;      While writing your password down is commonly advised, make sure you don't display the password where anybody can see it. e.g. On a post-it note on your monitor.&lt;br /&gt;&lt;br /&gt;Suggestions:&lt;br /&gt;&lt;br /&gt;A good way to form complex passwords is to think of a sentence, and then take the first or second latter from each word in that sentence. The resulting password will then look pretty random to an outsider, but the user can easily remember it from the sentence and the rule.&lt;br /&gt;&lt;br /&gt;Always change your password if you suspect somebody might have found it out.&lt;br /&gt;&lt;br /&gt;It is a good idea to change your password regularly.&lt;br /&gt;3 · Identifying to NickServ and ChanServ&lt;br /&gt;&lt;br /&gt;Upon occasion, you will be required to identify to NickServ or ChanServ with your password. You will want to make sure that NickServ and ChanServ are who you think they are. Abusive users will sometimes pretend to be NickServ or ChanServ on a network other than DALnet, since those nicknames can be used by anyone. A guide on detecting DALnet Services or IRC Operator Impersonators can be found at http://docs.dal.net/docs/ircimps.html.&lt;br /&gt;&lt;br /&gt;Make sure you are sending your password to the right place by verifying that you are logged onto a DALnet server. The server name will have "dal.net" in it. Type /whois ChanServ or /whois NickServ, and make sure the reply says "services@dal.net".&lt;br /&gt;&lt;br /&gt;Also, be sure to use the secure methods of identifying to Services:&lt;br /&gt;&lt;br /&gt;To identify to NickServ, use:&lt;br /&gt;&lt;br /&gt;/nickserv identify Password&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;/msg nickserv@services.dal.net identify Password&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;/identify Password&lt;br /&gt;&lt;br /&gt;A more detailed guide on how to identify for nicknames can be found at http://docs.dal.net/docs/nickserv.html.&lt;br /&gt;&lt;br /&gt;To identify to ChanServ, use:&lt;br /&gt;&lt;br /&gt;/chanserv identify #channel Password&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;/msg chanserv@services.dal.net identify #channel Password&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;/identify #channel Password&lt;br /&gt;&lt;br /&gt;Further information on how to identify for channels can be found at http://docs.dal.net/docs/chanserv.html.&lt;br /&gt;4 · If You Forget Your Password&lt;br /&gt;&lt;br /&gt;DALnet allows you to have your password sent to your email address. This feature is implemented through the SENDPASS command.&lt;br /&gt;&lt;br /&gt;To have your nickname password sent to you, use:&lt;br /&gt;&lt;br /&gt;/nickserv sendpass Nick EmailAddress&lt;br /&gt;&lt;br /&gt;To have your channel password sent to you, use:&lt;br /&gt;&lt;br /&gt;/chanserv sendpass #channel Founder's EmailAddress&lt;br /&gt;&lt;br /&gt;Please read http://docs.dal.net/docs/nsemail.html#5.2 for additional details.&lt;br /&gt;&lt;br /&gt;If this still does not solve your password/ownership problem then you can contact a CSop for help. However, it is the user's responsibility to look after any/all nickname and channel passwords. We will do what we can in problem situations, but that may not be a lot on every case.&lt;br /&gt;&lt;br /&gt;Before you look for a CSop to help you with your password, check the following things:&lt;br /&gt;&lt;br /&gt;   1.&lt;br /&gt;&lt;br /&gt;      Are you using the correct command?&lt;br /&gt;   2.&lt;br /&gt;&lt;br /&gt;      Is the nickname or channel yours? Did it expire and become registered by somebody else?&lt;br /&gt;   3.&lt;br /&gt;&lt;br /&gt;      Are you typing the password correctly? Remember, passwords are case-sensitive.&lt;br /&gt;&lt;br /&gt;If none of the above work, you should seek the help of a CSop. Finding a CSop can be done with the following methods:&lt;br /&gt;&lt;br /&gt;/motd services.* will give you a list of all CSops, you can /whois them to see if they're online.&lt;br /&gt;&lt;br /&gt;Join #operhelp, the IRCop help channel. Often, CSops will be there, or atleast somebody who can find one will be.&lt;br /&gt;&lt;br /&gt;Visit http://docs.dal.net/docs/findoper.html&lt;br /&gt;5 · Losing Your Nicknames and/or Channels&lt;br /&gt;&lt;br /&gt;Nicknames and Channels expire after 30 days of not being used. After this, the nicknames and channels are up for grabs by anybody who wishes to register them.&lt;br /&gt;&lt;br /&gt;If your nickname expires, then all channels registered to that nickname will expire as well.&lt;br /&gt;&lt;br /&gt;Be very careful when using public computers, such as internet cafes. These computers may be insecure, and may have viruses or other hostile scripts on them, which will allow people to gain access to your password. In these cases, the DALnet administration will NOT help you with the password.&lt;br /&gt;&lt;br /&gt;Never share your passwords with anybody, regardless of whether you trust them or not. The other person could accidentally, or intentionally give the password out to another person. DALnet will not help in these situations, either.&lt;br /&gt;&lt;br /&gt;If you have any questions about the usage of passwords on DALnet, #DALnetHelp or #OperHelp will be willing to assist you.&lt;br /&gt;&lt;br /&gt;Some other help documents that may find of interest are http://docs.dal.net/docs/exploits.html, http://docs.dal.net/docs/annoy.html and http://docs.dal.net/docs/ircimps.html.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-2913869242547146119?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/2913869242547146119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=2913869242547146119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/2913869242547146119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/2913869242547146119'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/dalnet-password-guide.html' title='DALnet Password Guide'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-9009804971038943956</id><published>2008-03-20T19:31:00.000-07:00</published><updated>2008-04-01T10:04:00.281-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>Securing Windows Against Trojans</title><content type='html'>Securing Windows Against Trojans&lt;br /&gt;&lt;br /&gt;Version 1.1.2&lt;br /&gt;&lt;br /&gt;Last revised by PJKevin (kevinram_2002@hotmail.com) on 2004-08-06&lt;br /&gt;&lt;br /&gt;Originally written by Jim-mm (jim-mm@dal.net) on 2000-08-25&lt;br /&gt;&lt;br /&gt;Copyright © 2000-2004 by the DALnet IRC Network&lt;br /&gt;&lt;br /&gt;Please direct any comments or feedback about this document (only! no help requests!) to docs@dal.net. If you need help on issues not covered in this document, please see the information at http://help.dal.net.&lt;br /&gt;A Message from the DALnet Exploits Prevention Team&lt;br /&gt;&lt;br /&gt;High-speed always-on network connections can be devastating if abused, on IRC and otherwise. Please help us to help you enjoy your experience on DALnet, by taking the time to ensure your computer system can't be used to abuse others.&lt;br /&gt;Contents&lt;br /&gt;&lt;br /&gt;    * 1 What Trojans Are&lt;br /&gt;    * 2 Why You Should Care&lt;br /&gt;    * 3 The 10 Minute System Security Check&lt;br /&gt;    * 4 Information Sources&lt;br /&gt;&lt;br /&gt;1 · What Trojans Are&lt;br /&gt;&lt;br /&gt;Trojans are programs that run on a computer without the user knowing of their existence, and provide some kind of access to use the computer for an outsider. While technically not viruses, they fall into the same category of malicious programs that can be running in a computer without the user's permission. There are many kind of trojans, but they typically allow others to use the computer over the network: run programs on the computer, or access the data stored on the computer's hard disk.&lt;br /&gt;2 · Why You Should Care&lt;br /&gt;&lt;br /&gt;Cable and DSL technologies are unique in that they provide a high-speed, always-on connection to a home PC. It's the speed and always-on nature of Cable/DSL technologies that attracts crackers. If you aren't careful, they can take control of your machine remotely, steal your data and even use your PC to conduct devastating attacks on other machines - all without your knowledge.&lt;br /&gt;&lt;br /&gt;Even if you do not have a cable or DSL connection, a trojan on your computer could be used to get files from your computer or to cause a lot of nuisance for you in other ways.&lt;br /&gt;&lt;br /&gt;The DALnet Exploits Prevention Team sees the results of this kind of 'hijacking' every day. Systems are compromised, users' nicknames, passwords and other personal data is stolen and their bandwith sapped to carry out attacks. All too often the ISPs of such unlucky users refuse to believe that the machine was compromised and place the blame firmly at the door of their subscriber, disconnecting or restricting their service.&lt;br /&gt;&lt;br /&gt;The team is doing what they can to control the problem on DALnet, but they need your help. Every trojanised PC is a potential gateway for an attack on the network, and people with malicious intentions are using them frequently for this and other purposes. Attacks are being launched from compromised machines, and it's very difficult if not impossible for the team to trace the true source.&lt;br /&gt;&lt;br /&gt;However, it's easy and quick for a user to find and remove most trojans. Below are instructions on what to do, and links to some software packages that are of help. Please help us to help you, take a couple of minutes and check your system over. At worst, you've wasted ten minutes, at best you've saved yourself the hassle and potential costs of a system compromise.&lt;br /&gt;3 · The 10 Minute System Security Check&lt;br /&gt;&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      First, make sure the system is clean. Download and run a Trojan Scanner - this will detect and remove trojans from any Windows system. Shareware but fully functional for 30 days, The Cleaner from http://www.moosoft.com is probably the most comprehensive.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Next, update your virus scanner if it's not up to date, and run a full scan. Virus scanners also detect most trojans and stop them from being installed. They will of course also protect you from numerous other viruses you might accidentally pick up. They do need to be up to date to be reliable, so visit the manufacturer's homepage and get yours updated regularly.&lt;br /&gt;&lt;br /&gt;      Here are links to the homepages of some of the companies which make virus scanners:&lt;br /&gt;&lt;br /&gt;      McAfee, http://www.mcafee.com&lt;br /&gt;&lt;br /&gt;      Norton, http://www.norton.com&lt;br /&gt;&lt;br /&gt;      Trend Micro, http://www.antivirus.com&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Now, close any 'open doors' on your machine. Pay a visit to http://www.grc.com and test your system. You'll probably find netbios ports open, which can be used to attack your PC. There's instructions on the website on how to close this gaping security hole.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      It is suggested that Windows users run their computer in safe mode. Most viruses and trojans are easier to be detected when in safe mode where the trojan is inactive.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Finally, consider installing a desktop firewall. These prevent people accessing your PC over the internet without your permission, and installing trojans on your computer. There's a listing and review of what they are, how they work and which one's are good, bad or plain useless at http://grc.com/su-firewalls.htm.&lt;br /&gt;&lt;br /&gt;      ZoneAlarm, from http://www.zonelabs.com, is free for personal use and is very easy to set up.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Your system should now be free of both trojans and viruses, and should also hopefully stay that way.&lt;br /&gt;&lt;br /&gt;4 · Information Sources&lt;br /&gt;&lt;br /&gt;1) http://www.nohack.net (#NoHack's Website with documents and information on trojan and viruses).&lt;br /&gt;&lt;br /&gt;2) http://kline.dal.net/exploits/ddos.htm (Information on DDOS attacks)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-9009804971038943956?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/9009804971038943956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=9009804971038943956' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/9009804971038943956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/9009804971038943956'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/securing-windows-against-trojans.html' title='Securing Windows Against Trojans'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-7255048063003921681</id><published>2008-03-20T19:30:00.000-07:00</published><updated>2008-04-01T10:04:00.281-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>NickServ Options</title><content type='html'>NickServ Options&lt;br /&gt;&lt;br /&gt;Version 1.1.4&lt;br /&gt;&lt;br /&gt;Last revised by Zappu (zappu.dalnet@gmail.com) on 2007-09-05&lt;br /&gt;&lt;br /&gt;Originally written by LadyDana (ladydana@dal.net) on 2000-10-31&lt;br /&gt;&lt;br /&gt;Copyright © 2000-2007 by the DALnet IRC Network&lt;br /&gt;&lt;br /&gt;Please direct any comments or feedback about this document (only! no help requests!) to docs@dal.net. If you need help on issues not covered in this document, please see the information at http://help.dal.net.&lt;br /&gt;Introduction&lt;br /&gt;&lt;br /&gt;DALnet stands out as being the largest IRC network with services. It was indeed the first to have successfully implemented ****Serv services for its users back in 1994. The most well used of these services are NickServ, ChanServ and MemoServ. This document will walk through the options available through NickServ once you have obtained a fully registered nickname.&lt;br /&gt;&lt;br /&gt;A complete list of DALnet Services commands can also be found at http://www.dal.net/services. Further services related questions should be directed to one of the three DALnet owned help channels: #DALnetHelp, #Help or #IRCHelp.&lt;br /&gt;&lt;br /&gt;Throughout the document, the command /nickserv will be used for interacting with NickServ. It is possible that your IRC client may not support this command. If that is the case, then we suggest that you try /msg nickserv@services.dal.net or /quote nickserv instead.&lt;br /&gt;Contents&lt;br /&gt;&lt;br /&gt;    * 1 Requirements, Abilities and Responsibilities&lt;br /&gt;    * 2 Identifying to a nick&lt;br /&gt;    * 3 Requesting information on a nick&lt;br /&gt;    * 4 "Nickname is currently in use"&lt;br /&gt;          o 4.1 The GHOST command&lt;br /&gt;          o 4.2 The RECOVER command&lt;br /&gt;          o 4.3 The RELEASE command&lt;br /&gt;    * 5 Access Lists and Checking Access&lt;br /&gt;    * 6 Setting Options&lt;br /&gt;          o 6.1 Changing your Password&lt;br /&gt;          o 6.2 Preventing others from using your nick&lt;br /&gt;          o 6.3 Attaching a URL to your nick&lt;br /&gt;          o 6.4 (Re)Setting an E-Mail Address&lt;br /&gt;          o 6.5 Displaying your E-Mail Address&lt;br /&gt;          o 6.6 Disabling Memos&lt;br /&gt;          o 6.7 Preventing Op Status&lt;br /&gt;          o 6.8 Disabling SENDPASS&lt;br /&gt;    * 7 Dropping a nick&lt;br /&gt;    * 8 "I forgot my password"&lt;br /&gt;    * 9 NickServ Abuse&lt;br /&gt;&lt;br /&gt;1 · Requirements, Abilities and Responsibilities&lt;br /&gt;&lt;br /&gt;This document assumes that you have already successfully registered your chosen nickname with NickServ, and will not cover the steps required to do so. A document explaining the registration process is available at http://docs.dal.net/docs/nsemail.html.&lt;br /&gt;&lt;br /&gt;NickServ permits users to 'register' a nickname, and stop others from using that nick. NickServ allows the owner of a nick to disconnect another user who is using the nick. If a registered nick is not used by the owner for 30 days, NickServ will drop it, leaving it up for grabs by another user.&lt;br /&gt;&lt;br /&gt;When registering a nick, you are taking advantage of a free service provided by the DALnet IRC network. Please don't register more nicks than you will be able to use, or register a nick for the sole purpose of preventing others from using it.&lt;br /&gt;2 · Identifying to a nick&lt;br /&gt;&lt;br /&gt;There are actually a number of ways to identify to a nickname. You can also identify to a nickname that you are not using at the time. The more traditional and well-known way would be:&lt;br /&gt;&lt;br /&gt;/nickserv identify [nickname] password&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/nickserv identify ILovePeanutButter&lt;br /&gt;/nickserv identify PeanutButterLover ILovePeanutButter&lt;br /&gt;&lt;br /&gt;There are also a variety of other ways to identify to your nickname:&lt;br /&gt;&lt;br /&gt;/identify [nickname] password&lt;br /&gt;/services identify [nickname] password&lt;br /&gt;/msg nickserv@services.dal.net identify [nickname] password&lt;br /&gt;&lt;br /&gt;Since /identify and /services are DALnet built-in server commands, there are some clients which may not accept them. If yours does not accept the commands, you will have to add the /quote prefix:&lt;br /&gt;&lt;br /&gt;/quote identify [nickname] password&lt;br /&gt;/quote services identify [nickname] password&lt;br /&gt;&lt;br /&gt;There have been many incidences of people accidently displaying their password in the open channel or in private message by omitting the / command character. Therefore, we strongly suggest that you pay special attention when identifying to your nick. A number of clients also support multiple windows. For those users, it might be a good idea to type out any password including commands in the Status window (or its equivalent).&lt;br /&gt;3 · Requesting information on a nick&lt;br /&gt;&lt;br /&gt;The following command is very useful for obtaining information on a registered nickname. It will give you an idea of the owner's host, the last time they were online, the options they have set, etc.&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;&lt;br /&gt;/nickserv info nickname&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/nickserv info PeanutButterLover&lt;br /&gt;&lt;br /&gt;Below is an example of what the NickServ INFO request may return as information:&lt;br /&gt;&lt;br /&gt;-NickServ- Info for PeanutButterLover:&lt;br /&gt;-NickServ- (Currently on IRC) For extra info: /whois PeanutButterLover&lt;br /&gt;-NickServ- Last seen address : butter@loving.peanutbutter.ca&lt;br /&gt;-NickServ- Memos forward to : PeanutButter&lt;br /&gt;-NickServ- Last seen time : Tue 10/24/2000 04:10:58 GMT&lt;br /&gt;-NickServ- Time registered : Sun 08/22/1997 10:18:21 GMT&lt;br /&gt;-NickServ- Time now : Tue 10/24/2000 04:17:37 GMT&lt;br /&gt;-NickServ- URL : http://www.peanutbutter.ca/&lt;br /&gt;-NickServ- Email address : janet@peanutbutter.ca&lt;br /&gt;-NickServ- Options: Enforced, NoOp&lt;br /&gt;-NickServ- *** End of Info ***&lt;br /&gt;4 · "Nickname is currently in use"&lt;br /&gt;&lt;br /&gt;For one reason or another, your nickname may already be in use when you try to use it. Depending on the situation, there are three different commands to use.&lt;br /&gt;4.1 The GHOST command&lt;br /&gt;&lt;br /&gt;It's possible that you may have been disconnected from your ISP (Internet Service Provider) without first having logged off DALnet. This and other situations may occasionally cause the server to believe that you are still online. The nickname representing your previous connection is referred to as a ghost.&lt;br /&gt;&lt;br /&gt;In other words, a ghost is a connection that does not really exist anymore. The server just doesn't know it yet. A ghost usually always disappears after a few minutes but you may not have the patience to wait. The command to get rid of a ghost is as follows:&lt;br /&gt;&lt;br /&gt;/nickserv ghost nickname [password]&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/nickserv ghost PeanutButterLover&lt;br /&gt;/nickserv ghost PeanutButterLover ILovePeanutButter&lt;br /&gt;&lt;br /&gt;It's not necessary to include the password if you have a matching access list entry on that nickname. For more information on access lists, please visit http://docs.dal.net/docs/nsaccess.html.&lt;br /&gt;&lt;br /&gt;If you use the password in the ghost command then you are considered to have identified to your nick just as if you had used the /nickserv identify nickname password command.&lt;br /&gt;4.2 The RECOVER command&lt;br /&gt;&lt;br /&gt;If you don't have the ENFORCE option on, or if someone just started using your nick and NickServ hasn't had a chance to guest them (see section section 4.3), you have the option to disconnect someone who is currently using your nick with the RECOVER command.&lt;br /&gt;&lt;br /&gt;/nickserv recover nickname [password]&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/nickserv recover PeanutButterLover&lt;br /&gt;/nickserv recover PeanutButterLover ILovePeanutButter&lt;br /&gt;&lt;br /&gt;As with the GHOST command, the RECOVER command does not require you to include the nickname password. Matching an access list entry will suffice.&lt;br /&gt;&lt;br /&gt;After using RECOVER, your nick will be held. To regain your nick, you will need to use the RELEASE command which is discussed below.&lt;br /&gt;4.3 The RELEASE command&lt;br /&gt;&lt;br /&gt;An enforcer is a temporary hold of a nickname within 60 seconds (provided that the ENFORCE option for that nick is turned on). The user's nick will be changed to Guest***** and the nick will be held. Nicks being held in this manner cannot be used. A person attempting to use a held nick will receive an error message. Below is an example of the error message:&lt;br /&gt;&lt;br /&gt;PeanutButterLover The nick PeanutButterLover is currently being held by a Services Enforcer. If you are the nicks owner, use /msg NickServ@services.dal.net RELEASE PeanutButterLover password to release the nickname. If thenickname recently expired, please wait patiently and try again later. [PeanutButterLover]&lt;br /&gt;&lt;br /&gt;To release and use your nick immediately, the following command is used:&lt;br /&gt;&lt;br /&gt;/nickserv release nickname [password]&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/nickserv release PeanutButterLover&lt;br /&gt;/nickserv release PeanutButterLover ILovePeanutButter&lt;br /&gt;&lt;br /&gt;If the release command alone fails to return your nick, use the recover command (section 4.2) and repeat the release command. Once done, you may use your nick by typing /nick yournickname.&lt;br /&gt;&lt;br /&gt;As with the GHOST and RECOVER commands, it is not always necessary for you to include the nickname password. Matching an access list entry will suffice.&lt;br /&gt;5 · Access Lists and Checking Access&lt;br /&gt;&lt;br /&gt;Using the access list can get pretty confusing, especially for the newbie user. Therefore, we have written a document solely on access lists, what they are, how to use them along with their advantages and disadvantages. This document can be obtained at http://docs.dal.net/docs/nsaccess.html.&lt;br /&gt;&lt;br /&gt;Users also have the ability to check the access of themselves or another user. This will allow them to see if the person currently using the nick has actually identified to a nick, is only using the nick or is using it without having identified. The command is:&lt;br /&gt;&lt;br /&gt;/nickserv acc nickname&lt;br /&gt;&lt;br /&gt;NickServ will return a number from 0 to 3. It will look something like this:&lt;br /&gt;&lt;br /&gt;-NickServ- PeanutButterLover ACC 2&lt;br /&gt;&lt;br /&gt;Each number represents a different level of access that the user has with the nick that they are using at the time.&lt;br /&gt;&lt;br /&gt;0&lt;br /&gt;&lt;br /&gt;    The nickname used is not registered.&lt;br /&gt;1&lt;br /&gt;&lt;br /&gt;    The user has not identified to the nickname.&lt;br /&gt;2&lt;br /&gt;&lt;br /&gt;    The user matches an access list entry for the nickname.&lt;br /&gt;3&lt;br /&gt;&lt;br /&gt;    The user has identified to the nickname.&lt;br /&gt;&lt;br /&gt;This command can be useful in a number of situations, such as detecting impersonators, finding out why someone is not being an opped even if they are on the AOp/SOp list, etc.&lt;br /&gt;6 · Setting Options&lt;br /&gt;&lt;br /&gt;There are many options available to the owner of a fully registered nick. Before using any of the following commands, you should have identified to your nickname. Most of the commands will not work unless you have already identified.&lt;br /&gt;6.1 Changing your Password&lt;br /&gt;&lt;br /&gt;Changing your password is very easy:&lt;br /&gt;&lt;br /&gt;/nickserv set passwd oldpassword newpassword&lt;br /&gt;&lt;br /&gt;An example would be:&lt;br /&gt;&lt;br /&gt;/nickserv set passwd ILovePeanutButter ILovePB&lt;br /&gt;&lt;br /&gt;The above command would have changed your old password of "ILovePeanutButter" to "ILovePB". Upon a successful password change, users will be sent a confirmation email to the set email address notifying them of a password change. No password will be included in the email. It is simply a way to know that the password has been changed. If you did not issue the change, you will be aware of it and have time to take action to prevent further damage. A user may now roll back a password change. When someone does a "SET PASSWD", they will receive an email to their designated email address with an auth code. That auth code can be used for 72 hours to roll back the password change. There is a 72 hour (3 days) delay between issuing the commands SET PASSWD and SET EMAIL. A new password cannot be set within 72 hours of an email address change, and an email address change cannot be requested within 72 hours of a password change.&lt;br /&gt;6.2 Preventing others from using your nick&lt;br /&gt;&lt;br /&gt;One of the benefits of registering your nick is that you can prevent others from using it while you are not using it or while you are not online.&lt;br /&gt;&lt;br /&gt;The Enforce Option is now set by default after the complete nickname registration. This feature was previously known as the KILL option but has since been renamed to the ENFORCE option.&lt;br /&gt;&lt;br /&gt;When someone uses an "enforced" nick, they will be given 60 seconds to identify. Otherwise, their nickname will forcibly be changed to "Guest*****" where each * represents a random number.&lt;br /&gt;&lt;br /&gt;/nickserv set enforce on&lt;br /&gt;/nickserv set enforce off&lt;br /&gt;&lt;br /&gt;Out of long habit, there are still people who use the KILL command instead of the ENFORCE command. Both accomplish the same thing. Regardless, we strongly recommend that you get used to the ENFORCE command since it's possible that the KILL command may be removed some time in the future.&lt;br /&gt;&lt;br /&gt;As a sidenote, it's possible to use a nickname while not identified to it. Information on access lists can be obtained at http://docs.dal.net/docs/nsaccess.html.&lt;br /&gt;6.3 Attaching a URL to your nick&lt;br /&gt;&lt;br /&gt;It's possible to attach an URL to your nickname so that it displays in the NickServ INFO output. Usually, people use it to give the location of their homepage.&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;&lt;br /&gt;/nickserv set url [URL]&lt;br /&gt;&lt;br /&gt;Not including the URL parameter will cause NickServ to remove the existing URL from your nick.&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;&lt;br /&gt;/nickserv set url&lt;br /&gt;/nickserv set url http://www.peanutbutter.ca/&lt;br /&gt;&lt;br /&gt;The first would have removed the URL that was already attached to the nick. The second would have attached http://www.peanutbutter.ca/ to the nickname.&lt;br /&gt;6.4 (Re)Setting an E-Mail Address&lt;br /&gt;&lt;br /&gt;When first registering a nickname, you were required to enter a valid email address in order to confirm your registration. This is covered more extensively in the NickServ Registration document available at http://docs.dal.net/docs/nsemail.html.&lt;br /&gt;&lt;br /&gt;You may chose to change the email address listed for your nick to something else. This is accomplished through the SET EMAIL command.&lt;br /&gt;&lt;br /&gt;/nickserv set email Password [email address]&lt;br /&gt;&lt;br /&gt;Using the above command without an email address will cause NickServ to show you the email address that you currently have set. Actually changing your email address will naturally require you to enter a valid email address:&lt;br /&gt;&lt;br /&gt;/nickserv set email ILovePeanutButter janet@peanutbutter.ca&lt;br /&gt;&lt;br /&gt;Keep in mind that you will have to authorize the email change before it takes effect. The authorization email will be sent to this new address, in our case, janet@peanutbutter.ca. Changing an email adress is a two-stage-process. When an email adress change is requested, an email will first be sent to the current adress. This email will explain that an address change was requested and give the user the opportunity to abort the change if they did not request it. If the change is not aborted after 48 hours, a confirmation email will be sent to the new address, allowing the user to complete the adress change. There is an 72 hour (3 days) delay between issuing the commands SET EMAIL and SET PASSWD. A password change cannot be set within 72 hours of an email change, and an email change cannot be requested within 72 hours of a password change.&lt;br /&gt;&lt;br /&gt;A number of email addresses cannot be used for registering nicknames. This is due to abuse issues. For obvious reasons, you may not use @u.dal.net addresses to register your nick either.&lt;br /&gt;6.5 Displaying your E-Mail Address&lt;br /&gt;&lt;br /&gt;By default, the email address that you have set for your nick is completely invisible to other users. If you want to display your email address in your NickServ INFO output then you have only to use the SHOWEMAIL option.&lt;br /&gt;&lt;br /&gt;/nickserv set showemail on&lt;br /&gt;/nickserv set showemail off&lt;br /&gt;&lt;br /&gt;The former will cause NickServ to display your email address in a NickServ INFO output and the latter will prevent it from displayed.&lt;br /&gt;&lt;br /&gt;Disclaimer: The DALnet network is not responsible for any spam (mass advertising) that you may receive in your email account, should you chose to enable this option.&lt;br /&gt;6.6 Disabling Memos&lt;br /&gt;&lt;br /&gt;The NOMEMO option is strongly related to MemoServ and is also covered in the DALnet MemoServ document, available at http://docs.dal.net/docs/memoserv.html. In short, it will prevent others from sending memos to you. However, you will still receive global memos. It's also possible for an IRCop to force a memo on you if they wish to inform you of an issue of importance.&lt;br /&gt;&lt;br /&gt;The command is very easy to remember. You have two possibilities:&lt;br /&gt;&lt;br /&gt;/nickserv set nomemo on&lt;br /&gt;/nickserv set nomemo off&lt;br /&gt;&lt;br /&gt;That will turn the NOMEMO option on and off respectively. Keep in mind that the NOMEMO option actually overrides the MemoServ FORWARD option. It's possible to have a forwarding nick listed even if NOMEMO is turned on, but the memos will not be forwarded and will be refused right away.&lt;br /&gt;6.7 Preventing Op Status&lt;br /&gt;&lt;br /&gt;Just as it's possible for you to prevent memos from being sent to your nick, it's also possible for you to prevent your nick from being added to any AOp or SOp lists.&lt;br /&gt;&lt;br /&gt;/nickserv set noop on&lt;br /&gt;/nickserv set noop off&lt;br /&gt;&lt;br /&gt;The above commands enable and disable this option respectively. Should you wish to be added to an AOp or SOp list, it will be necessary to first turn off the NOOP option and then turn it back on if desired.&lt;br /&gt;6.8 Disabling SENDPASS&lt;br /&gt;&lt;br /&gt;DALnet allows you request your password if you have forgotten it (See section 8). You may chose to disable this self-send password ability by turning the MAILBLOCK option on. Please use this command carefully since you will not be able to request assistance if you ever lose your password.&lt;br /&gt;&lt;br /&gt;/nickserv set mailblock on&lt;br /&gt;/nickserv set mailblock off&lt;br /&gt;&lt;br /&gt;Turning the MAILBLOCK off will once again allow you to self-send your passwords. SET MAILBLOCK requires email authorization, similar to the nick registration authorization system. An authorization code will be sent to the current email adress. The user must enter the authorization code online or use the web system in order to confirm the MAILBLOCK request.&lt;br /&gt;7 · Dropping a nick&lt;br /&gt;&lt;br /&gt;You can chose to unregister your nick. The deregistration process is done in two steps. First, you have to request for a nickname to be dropped. Secondly, you have to confirm your decision to drop your nickname.&lt;br /&gt;&lt;br /&gt;The initial DROP command is as follows:&lt;br /&gt;&lt;br /&gt;/nickserv drop nickname&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/nickserv drop PeanutButterLover&lt;br /&gt;&lt;br /&gt;NickServ will reply something along the lines of this:&lt;br /&gt;&lt;br /&gt;-NickServ- The request for dropping a nick must be confirmed. Please check your email address for further instructions!&lt;br /&gt;&lt;br /&gt;Follow the instructions sent in the email by entering the exact authorization number. Copy and Paste may come in quite useful here. :)&lt;br /&gt;&lt;br /&gt;/nickserv auth nickname authorization code&lt;br /&gt;&lt;br /&gt;Finally, NickServ will confirm the drop of the nickname:&lt;br /&gt;&lt;br /&gt;-NickServ- The nick PeanutButterLover has been successfully dropped.&lt;br /&gt;&lt;br /&gt;Dropping a nickname will also result in the automatic removal of the your webpage (http://home.dal.net/nickname) and your email address with DALnet (nickname@u.dal.net) if either case applies.&lt;br /&gt;8 · "I forgot my password"&lt;br /&gt;&lt;br /&gt;Before you panic about having forgotten your password, keep in mind that passwords are CaSe SeNsItIvE. This means that "STAR" is not the same as "star" or "StaR". Try all the combinations on your password first. You might not have forgotten your password after all. :)&lt;br /&gt;&lt;br /&gt;Attaching an email address to your nickname will allow you to request for a password email to be sent for that nick. The syntax of this command is:&lt;br /&gt;&lt;br /&gt;/nickserv sendpass [nick] [email address]&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/nickserv sendpass PeanutButter janet@peanutbutter.ca&lt;br /&gt;&lt;br /&gt;The email address that you specify must match the email address that we have on file for the nickname in question. The SENDPASS command will also be disabled if your MAILBLOCK option has been turned on. See section 6.8.&lt;br /&gt;&lt;br /&gt;If you are not able to solve a forgotten password problem on your own, you may request the assistance of an IRCop.&lt;br /&gt;&lt;br /&gt;Instructions on how to find an IRC Operator are available at http://docs.dal.net/docs/findoper.html.&lt;br /&gt;9 · NickServ Abuse&lt;br /&gt;&lt;br /&gt;Keeping nicks registered requires valuable DALnet resources. The DALnet network does not tolerate any abusive usage of NickServ from people who register more nicks than they can use, for the sole reason of keeping others from obtaining the nick, with any malicious intent, simply overindulgence or otherwise. If you have 5 nicknames or fewer for example, this is certainly acceptable.&lt;br /&gt;&lt;br /&gt;Depending on the severity of the offense, any violations of the above policies are liable to be dealt with through warnings, bans from the network, freezing of the nick, dropping of the nick, seizing of the nick, services ignores or an email sent to the abuse department of the user's ISP (Internet Service Provider).&lt;br /&gt;&lt;br /&gt;The DALnet Administration also reserves the right to seize/drop nicks of users who severely break DALnet network rules. Examples: services or oper impersonation, multiple autokill evasions, repeated mass advertising, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-7255048063003921681?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/7255048063003921681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=7255048063003921681' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/7255048063003921681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/7255048063003921681'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/nickserv-options.html' title='NickServ Options'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-2433722284789794054</id><published>2008-03-20T19:29:00.000-07:00</published><updated>2008-04-01T10:04:00.282-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>Nickserv Access Lists</title><content type='html'>Nickserv Access Lists&lt;br /&gt;&lt;br /&gt;Version 1.2.2&lt;br /&gt;&lt;br /&gt;Last revised by Fredfred (Fredfred@dal.net) on 2005-11-12&lt;br /&gt;&lt;br /&gt;Originally written by quen (quen@leafdigital.com) on 1996-02-09&lt;br /&gt;&lt;br /&gt;Copyright © 1996-2005 by the DALnet IRC Network&lt;br /&gt;&lt;br /&gt;Please direct any comments or feedback about this document (only! no help requests!) to docs@dal.net. If you need help on issues not covered in this document, please see the information at http://help.dal.net.&lt;br /&gt;Introduction&lt;br /&gt;&lt;br /&gt;This guide explains the way to control exactly how and in what circumstances you and others can use your nickname(s) on DALnet. The "control" I mentioned is provided to you by a NickServ feature known as the "access list" or by identifying to NickServ with your password each time you log on.&lt;br /&gt;&lt;br /&gt;If you haven't already chosen and registered your nickname with NickServ, you should first do that - read Question 1.2 "How do I register my nick?" of the Services FAQ before continuing with this.&lt;br /&gt;&lt;br /&gt;Finally, two brief notes - whenever I give a command to type such as&lt;br /&gt;&lt;br /&gt;/nickserv identify password&lt;br /&gt;&lt;br /&gt;The command should be typed as it is shown, except that you should replace required parameters (here 'password') with the appropriate piece of information. For instance, in the above example, if your password was "apple", you would actually type&lt;br /&gt;&lt;br /&gt;/nickserv identify apple&lt;br /&gt;&lt;br /&gt;When commands begin with /nickserv or /chanserv, that is an alias used to message the service securely. If your client does not understand the command, you can begin the commands with /quote nickserv, or with /msg nickserv@services.dal.net.&lt;br /&gt;Contents&lt;br /&gt;&lt;br /&gt;    * 1 Why you need to know this information&lt;br /&gt;    * 2 What nickname access lists are&lt;br /&gt;    * 3 How do a username and hostname get added to your access list?&lt;br /&gt;    * 4 How to change your nickname access list&lt;br /&gt;    * 5 The pros and cons of having address masks in your access list&lt;br /&gt;    * 6 Hostnames and usernames explained&lt;br /&gt;          o 6.1 The username&lt;br /&gt;          o 6.2 The hostname&lt;br /&gt;    * 7 Address masks explained&lt;br /&gt;          o 7.1 Exact&lt;br /&gt;          o 7.2 Wildcards&lt;br /&gt;          o 7.3 How to choose a correct mask for yourself&lt;br /&gt;          o 7.4 If you have a static address&lt;br /&gt;          o 7.5 If you have a dynamic address&lt;br /&gt;    * 8 Numeric hostnames&lt;br /&gt;    * 9 Things to remember and security advice&lt;br /&gt;    * 10 Summary&lt;br /&gt;&lt;br /&gt;1 · Why you need to know this information&lt;br /&gt;&lt;br /&gt;DALnet encourages you to read this guide because:&lt;br /&gt;&lt;br /&gt;If NickServ always asks you for your password and you get fed up with this, you CAN fix it, and this explains how.&lt;br /&gt;&lt;br /&gt;If this isn't the case, it's entirely possible that some others who really wanted to could use your nickname. Even if you're not paranoid about other people "pretending to be you", consider that they could get you in trouble by misbehaving in some way with your nickname.&lt;br /&gt;&lt;br /&gt;If your access mask is "too wide" and allows other users access, this could give them access to your rights on channels which you are AOP, SOP, or founder on.&lt;br /&gt;&lt;br /&gt;A summary can be found in section 10, which briefly explains how to get a "correct" access list in most cases.&lt;br /&gt;2 · What nickname access lists are&lt;br /&gt;&lt;br /&gt;A nickname access list is a list of addresses from which you are recognised as the authorised user of a nickname, without needing to manually send a password. These can be exact addresses or "masks" that match a range of addresses.&lt;br /&gt;&lt;br /&gt;There are several ways in which a user may be allowed to use a registered nickname.&lt;br /&gt;&lt;br /&gt;In order to explain these, here's a summary of what happens when you log on, or change to nickname.&lt;br /&gt;&lt;br /&gt;   1.&lt;br /&gt;&lt;br /&gt;      NickServ checks if the nick is registered. If not, then it takes no further action (i.e. you can use the nick).&lt;br /&gt;   2.&lt;br /&gt;&lt;br /&gt;      NickServ checks if you have a username and hostname that matches one of those stored in the access list for that nick. (The username and hostname is the "something@somewhere.com" part of the information you get by typing /whois.) If there is such a match, then you are considered a valid user of the nickname, and NickServ takes no further action.&lt;br /&gt;   3.&lt;br /&gt;&lt;br /&gt;      NickServ sends a warning explaining that if this is your nick, you should use the /nickserv identify password command. At this point, you do not have access to memos, channels, AOP rights, etc.&lt;br /&gt;   4.&lt;br /&gt;&lt;br /&gt;      The Enforce Option is now set by default after the nickname complete registration. If nickname enforce is set on, NickServ changes your nick to a guest nick 60 seconds later, unless password identification is sent (see below). If nickname enforce is off, you are allowed to keep using the nick, with the same restrictions on access just explained. (For information about setting ENFORCE on for your nicks, see the Services FAQ question 1.3 "How do I stop others from using my registered nickname?")&lt;br /&gt;   5.&lt;br /&gt;&lt;br /&gt;      If you type the /nickserv identify password command you get full rights to the nick as soon as it is accepted.&lt;br /&gt;&lt;br /&gt;That was a little bit complicated, so here's another brief look at it from a slightly different perspective; a person may be using a registered nickname if:&lt;br /&gt;&lt;br /&gt;   1.&lt;br /&gt;&lt;br /&gt;      Their address [username and hostname] matches one in the access list.&lt;br /&gt;   2.&lt;br /&gt;&lt;br /&gt;      They sent the manual /nickserv identify password command.&lt;br /&gt;   3.&lt;br /&gt;&lt;br /&gt;      Enforce is set off for the nick&lt;br /&gt;   4.&lt;br /&gt;&lt;br /&gt;      Enforce is set on [in this case they can use it only for 60 seconds]&lt;br /&gt;&lt;br /&gt;(Only in cases 1 and 2 is the person seen as the "valid owner" of the nickname, with access to memos, to view nickname settings, and to any channel privileges there might be for that nickname. Changing nickname settings always requires password identification, case 2.)&lt;br /&gt;&lt;br /&gt;You can see by this that the "access list" is used for convenience, so that as long as you continue to use the same Internet service provider you won't normally need to type in the password each time you use your nickname.&lt;br /&gt;3 · How do a username and hostname get added to your access list?&lt;br /&gt;&lt;br /&gt;There are two ways in which this could happen:&lt;br /&gt;&lt;br /&gt;   1.&lt;br /&gt;&lt;br /&gt;      You add it yourself by using the comand /nickserv access add mask (see below)&lt;br /&gt;   2.&lt;br /&gt;&lt;br /&gt;      When you register your nick, the address you're using at that moment is automatically added to your access list (you may want to remove it; read on)&lt;br /&gt;&lt;br /&gt;4 · How to change your nickname access list&lt;br /&gt;&lt;br /&gt;Here are the commands for manipulating your access list. Before you use any of them, you should change to the appropriate nickname. You will also need to identify for the nick (/nickserv identify password) before you can do the ADD or DEL commands.&lt;br /&gt;&lt;br /&gt;After you type any of these commands, NickServ will respond to show you the results or confirm that your command worked.&lt;br /&gt;&lt;br /&gt;If there is no response, NickServ is probably lagged, so please be patient. If there is a message like nickserv - no such nick/channel or Services is currently down. Please wait a few moments, and then try again. then NickServ is probably not working at the moment; try again later.&lt;br /&gt;&lt;br /&gt;/nickserv access list&lt;br /&gt;&lt;br /&gt;Typing this command will show you the current access list&lt;br /&gt;&lt;br /&gt;/nickserv access add mask&lt;br /&gt;&lt;br /&gt;Typing this command - replacing the word "mask" with an actual mask - will add an "address mask" (see later) to the list so that people matching that mask will be able to use the nickname without identifying.&lt;br /&gt;&lt;br /&gt;/nickserv access del mask&lt;br /&gt;&lt;br /&gt;If an "address mask" is inappropriate, insecure, or no longer required, you can remove it from the list using this command.&lt;br /&gt;5 · The pros and cons of having address masks in your access list&lt;br /&gt;&lt;br /&gt;There are security advantages to clearing the access list, which means that you must always give NickServ the password so as to use the nick. Therefore, if the security of your nick is more important to you than convenience, this is the action you should take.&lt;br /&gt;&lt;br /&gt;Note that even if somebody else does manage to use your nickname due to the access list, they still can't access any of the critical commands such as dropping the registration or changing the password. All of those require you to identify with the password first.&lt;br /&gt;&lt;br /&gt;However, if someone gets access in this way they will be able to read your memos and send memos using your name, as well as gaining access to any rights you may have on channels (AOPs, SOPs, etc). They can also register channels in your name.&lt;br /&gt;&lt;br /&gt;If you decide your nickname needs to be secure, the rest of this section explains how to clear your access list. Otherwise, you should skip to the next section. All the other sections from now on assume you *are* going to use the access list.&lt;br /&gt;&lt;br /&gt;To clear your access mask list, do the following:&lt;br /&gt;&lt;br /&gt;   1.&lt;br /&gt;&lt;br /&gt;      Type /nickserv identify password (where "password" is the password for your nick)&lt;br /&gt;   2.&lt;br /&gt;&lt;br /&gt;      Type /nickserv access wipe&lt;br /&gt;&lt;br /&gt;Once you have cleared your access list, you are going to need to identify with NickServ each time you log on to DALnet. To do this, you type:&lt;br /&gt;&lt;br /&gt;/nickserv identify password&lt;br /&gt;&lt;br /&gt;Do not create auto-identify scripts. It is easy to accidentally log onto another network, and forget that you had the auto-identify script on. On the other network, there may well be a user calling themselves NickServ specifically to steal passwords. Depending on your script, your password may go to them. Another problem is you may share your script with friends and forget to edit out the password. This is a real danger and has happened to dozens of DALnet users.&lt;br /&gt;&lt;br /&gt;If you've cleared your access list, there's not much point reading the rest of this document, as it assumes you decided to use the access list.&lt;br /&gt;6 · Hostnames and usernames explained&lt;br /&gt;&lt;br /&gt;In choosing a mask for yourself, the first thing to do is, while online, to run a /whois on yourself, and look at the results. You should see something like:&lt;br /&gt;&lt;br /&gt;YourNick is ~user@009-443.provider.com * Your Silly Message&lt;br /&gt;[etc]&lt;br /&gt;&lt;br /&gt;or perhaps like:&lt;br /&gt;&lt;br /&gt;*** YourNick is ~user@009-443.provider.com (Your Silly Message)&lt;br /&gt;&lt;br /&gt;The important part is the ~user@009-443.provider.com part, which you should be able to see whatever format your IRC program uses. We'll take a closer look at the various parts of this.&lt;br /&gt;&lt;br /&gt;Before we start: if your result looks like ~user@124.45.230.123 - i.e. four numbers and no words in the "hostname" part - please see section 8 in this guide.&lt;br /&gt;6.1 The username&lt;br /&gt;&lt;br /&gt;The username part of the above address is "~user". In fact, this itself divides into two parts - the "~" which indicates you don't have an ident server, and the "user" which is the actual username.&lt;br /&gt;&lt;br /&gt;Unless you're using a Unix or VMS computer system such as some university systems, or you use one of a few particular service providers, it's likely that you can change your username to anything you like. [Note: mIRC calls the username 'email address'.]&lt;br /&gt;&lt;br /&gt;In the example I gave, the person hasn't changed their username from the default of the program they use, which happens to be "user". This is very common, but is not a particularly sensible idea. You should pick some other username so that not everybody has the same one.&lt;br /&gt;&lt;br /&gt;(When picking a username, you should probably choose your username or account name at your ISP, unless you want to keep your email address secret from other users. If you choose something different for that reason, make sure it is a single word using only letters and numbers; using other symbols could cause problems.)&lt;br /&gt;&lt;br /&gt;If at this point you change your username, you'll need to disconnect from IRC and reconnect. (It's usually best to quit your IRC program and then reload.) Then do the /whois again.&lt;br /&gt;&lt;br /&gt;You need to know your "username" to choose a correct mask.&lt;br /&gt;6.2 The hostname&lt;br /&gt;&lt;br /&gt;The above user's hostname is "009-443.provider.com". This indicates that they are using the Internet service provider "provider.com" (which I made up), and that they are currently using the machine or phoneline at that provider which is number 009-443.&lt;br /&gt;&lt;br /&gt;This hostname is what's known as a dynamic hostname. Dynamic hostnames include a number or similar code at the start, which is different each time you dial the provider to start an Internet session.&lt;br /&gt;&lt;br /&gt;Some hostnames (for instance at a company or institution) may be static - that is, each time you start an Internet session, you'll have exactly the same hostname. You can find out which you are by trial and error, but a general rule of thumb is that if your internet access comes by dialing up on an ordinary domestic phone line, you probably have a dynamic hostname. Dynamic hostnames always have a number or odd code at the start; static hostnames normally are just words, but might include numbers also.&lt;br /&gt;&lt;br /&gt;Here are some examples of static hostnames:&lt;br /&gt;&lt;br /&gt;spelt-lib.demon.co.uk&lt;br /&gt;&lt;br /&gt;altair.dur.ac.uk&lt;br /&gt;&lt;br /&gt;quilt.usn.blaze.net.au&lt;br /&gt;&lt;br /&gt;puree.ugcs.caltech.edu&lt;br /&gt;&lt;br /&gt;And here are some dynamic hostnames:&lt;br /&gt;&lt;br /&gt;ppp96.sagelink.net&lt;br /&gt;&lt;br /&gt;one-pm30.norwich.net&lt;br /&gt;&lt;br /&gt;ip022.phx.primenet.com&lt;br /&gt;&lt;br /&gt;pc38.bgmoess-klu.ac.at&lt;br /&gt;&lt;br /&gt;Just to confuse, static hostnames can have numbers in them (e.g cm001-13.dur.ac.uk) - if in doubt, though, and it has a number, assume it's dynamic.&lt;br /&gt;&lt;br /&gt;You need to know which type of hostname you have before you can choose a correct address mask.&lt;br /&gt;7 · Address masks explained&lt;br /&gt;&lt;br /&gt;First, a quick note about what address masks do not include. They do not include the nickname portion *! that you might have seen in channel ban masks. They also must not include the ~ at the start of the username, which might be displayed in the /whois output. If you include either of these two things, it's likely that the mask will never work.&lt;br /&gt;&lt;br /&gt;Address masks can be of two forms.&lt;br /&gt;7.1 Exact&lt;br /&gt;&lt;br /&gt;For instance, an address mask could be:&lt;br /&gt;&lt;br /&gt;peter@orion.dur.ac.uk&lt;br /&gt;&lt;br /&gt;This mask would only allow people using the exact computer or phoneline "orion.dur.ac.uk", and whose username ("email" in mIRC) was set to "peter", to use the nickname without identifying.&lt;br /&gt;7.2 Wildcards&lt;br /&gt;&lt;br /&gt;Wildcards are the * symbols you might see in address masks. A * symbol "matches" any number of characters (letters or numbers), even none at all.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;"for*"&lt;br /&gt;&lt;br /&gt;    would match "forest", "fortune", "for" - anything beginning with the three letters "for".&lt;br /&gt;"*st"&lt;br /&gt;&lt;br /&gt;    would match "forest", "best", "Bucharest" - anything ending with the two letters "st".&lt;br /&gt;"f*st"&lt;br /&gt;&lt;br /&gt;    would match "forest", "frost", "fst", "fast" - anything beginning with "f" that also ends in "st".&lt;br /&gt;"f*s*t"&lt;br /&gt;&lt;br /&gt;    would match "forest", "foresight", "frost" - anything that begins with "f", ends with "t", and has an "s" somewhere in the middle.&lt;br /&gt;&lt;br /&gt;If you don't fully understand that, don't worry; such complex wildcards aren't usually needed to specify access masks.&lt;br /&gt;&lt;br /&gt;A typical access mask with a wildcard might be:&lt;br /&gt;&lt;br /&gt;CuteElf@*.netcom.com&lt;br /&gt;&lt;br /&gt;This allows anybody whose username is set to CuteElf, and whose hostname ends in ".netcom.com", to access the nickname. (Since every Netcom user's address ends in ".netcom.com", this is not a very secure access mask.)&lt;br /&gt;7.3 How to choose a correct mask for yourself&lt;br /&gt;&lt;br /&gt;So, you know your username and hostname, and whether the address is static or dynamic. What now?&lt;br /&gt;&lt;br /&gt;If your hostname is numeric - a set of 4 numbers, instead of "words" - you should now look at section 8, which explains how to deal with this situation - these hostnames work differently from the normal type.&lt;br /&gt;7.4 If you have a static address&lt;br /&gt;&lt;br /&gt;The correct access mask for you in this case is:&lt;br /&gt;&lt;br /&gt;username@hostname&lt;br /&gt;&lt;br /&gt;For instance, in the unlikely event that the example I gave was a static address, the correct access mask would be:&lt;br /&gt;&lt;br /&gt;user@009-443.provider.com&lt;br /&gt;7.5 If you have a dynamic address&lt;br /&gt;&lt;br /&gt;Things are slightly more complicated here. You basically need to replace the part of the hostname that changes each time with a *:&lt;br /&gt;&lt;br /&gt;username@*.part-of-hostname-that-doesn't-change&lt;br /&gt;&lt;br /&gt;For instance, a good mask for the above example would be:&lt;br /&gt;&lt;br /&gt;user@*.provider.com&lt;br /&gt;&lt;br /&gt;If the 009 was always the same every time that user dialed up, and only the 443 changed, then an even better mask would be:&lt;br /&gt;&lt;br /&gt;user@009-*.provider.com&lt;br /&gt;8 · Numeric hostnames&lt;br /&gt;&lt;br /&gt;Sometimes the hostname part of your address may appear not as a name:&lt;br /&gt;&lt;br /&gt;username@A56.myprovider.com&lt;br /&gt;&lt;br /&gt;but as a set of 4 numbers:&lt;br /&gt;&lt;br /&gt;username@154.43.68.56&lt;br /&gt;&lt;br /&gt;The set of numbers - also known as an IP address - is actually the "real" host address. The name you see normally is simply an easier-to-read way of giving the number.&lt;br /&gt;&lt;br /&gt;The reason why your hostname sometimes comes up as a number is usually lag between your service provider and the IRC server you're connecting to. In this case, the IRC server may not get a response to the "name lookup" within a reasonable time, so it falls back on using the number.&lt;br /&gt;&lt;br /&gt;Assuming you normally get a name, if your hostname ends up being a number one time, the easiest solution is probably just to change server, or even reconnect to the same server. If you are using a server that's geographically near to you, it is unlikely that the "number" thing will happen often. You shouldn't add an IP address to your access list just because one time your hostname appeared as numbers.&lt;br /&gt;&lt;br /&gt;If your hostname always or often comes up as numbers, you might want to add it to your access list. Numeric hostnames are simple to deal with in the context of an access mask.&lt;br /&gt;&lt;br /&gt;As with standard "name" type hostnames, you need to determine whether your hostname is dynamic or static; if you already know that from the format of the "name" type hostname, then it will be the same for the numeric hostname. If you have a numeric hostname and don't know which type it is, the only sure way to check is to log in to your Internet provider several times and see if the last number (of the set of four) changes. You can assume that a dialup account will almost certainly have a dynamic hostname.&lt;br /&gt;&lt;br /&gt;If you have a dynamic hostname, you need to:&lt;br /&gt;&lt;br /&gt;/nickserv access add username@154.43.68.*&lt;br /&gt;&lt;br /&gt;where the username and the first three numbers are the ones from your /whois, and the * replaces the last number.&lt;br /&gt;&lt;br /&gt;If your address is static, simply include all four numbers instead of replacing the last one with a *. In my example, that would be:&lt;br /&gt;&lt;br /&gt;/nickserv access add username@154.43.68.56&lt;br /&gt;9 · Things to remember and security advice&lt;br /&gt;&lt;br /&gt;If you want your nickname to be as secure as possible&lt;br /&gt;&lt;br /&gt;    Delete all the addresses from the access mask, and use the&lt;br /&gt;&lt;br /&gt;    /nickserv identify password&lt;br /&gt;&lt;br /&gt;    command every time you log on to DALnet. (See section 5 of this guide.)&lt;br /&gt;If you have a static address&lt;br /&gt;&lt;br /&gt;    If you're one of the lucky few with a static address, you should have an access list consisting of your username@hostname and nothing else. The mask in the list shouldn't have any wildcards (* symbols) since your address is always exactly the same.&lt;br /&gt;&lt;br /&gt;    Delete any other masks that might be in the list.&lt;br /&gt;&lt;br /&gt;    Because your address is static, nobody else could have a matching address, so this is quite secure; it's unlikely others will be able to abuse your nickname.&lt;br /&gt;If you have a dynamic address&lt;br /&gt;&lt;br /&gt;    Most of us are stuck with dynamic addressess, unfortunately. The basic principle is to have only one mask in the list, which will "allow in" as few people as possible. Delete any other masks.&lt;br /&gt;&lt;br /&gt;    The mask should include your username, and as much of the hostname as possible (all of it that doesn't change). For instance, while I was using Netcom, my default mask that NickServ assigned me allowed anybody at Netcom to use my nickname. (Provided they changed their username to the one I was using at the time.) By looking at my hostname, I noticed that part of it referred to the dialup point I was using, and didn't change. So I replaced my access mask to include that as well, which meant that only those Netcom users who used the Seattle, WA dialup point would be able to use my nickname.&lt;br /&gt;&lt;br /&gt;    As you can see, when you have a dynamic IP, access masks almost always allow large groups of people the potential to use your nickname. If you're not satisfied with this, your only option is to delete all access masks from the list, and manually identify with NickServ every time you use DALnet.&lt;br /&gt;&lt;br /&gt;    Note that even if somebody else does manage to use your nickname due to the access list, they still can't get at any of the critical commands such as dropping the registration or changing the password. All of those require you to identify with the password first. However, if someone got access in this way they will be able to read your memos and send memos using your name, as well as access any channel privileges you might have.&lt;br /&gt;If you change Internet provider&lt;br /&gt;&lt;br /&gt;    In this case you'll need to add new, different masks for your new address. Don't forget to delete the old masks, assuming you're no longer going to be using the old account.&lt;br /&gt;If you have more than one Internet account&lt;br /&gt;&lt;br /&gt;    You may want to add several masks, one for each of the accounts from which you use DALnet.&lt;br /&gt;Don't add wide access masks to your list&lt;br /&gt;&lt;br /&gt;    NEVER put *@* in your access list, or other access masks like *@*.net, *@*.com, *@*.uk, etc, which would let large numbers of people use your nick.&lt;br /&gt;Try to have as few access masks as possible&lt;br /&gt;&lt;br /&gt;    You should only need one access mask per account you use to IRC. Each access mask you include may reduce the security of your nickname slightly, so avoid having more than this minimum.&lt;br /&gt;If you have trouble with people trying to steal your nickname&lt;br /&gt;&lt;br /&gt;    Sometimes, if people are trying to steal your nick, you might want to add warnings to CSops (the only people who can retrieve channel and nickname passwords that might have been lost) so that they will know you have been having problems with this, and will not give out the password to anyone.&lt;br /&gt;&lt;br /&gt;    This is less significant nowadays because your nickname should have been registered with an email address. CSops will normally send passwords only to that email address. However, if you are still concerned, you can warn CSops using "fake" access masks, for example:&lt;br /&gt;&lt;br /&gt;    ATTENTION@dont.give.out.my.pass.to.anyone&lt;br /&gt;&lt;br /&gt;    or&lt;br /&gt;&lt;br /&gt;    ATTENTION@only.send.my.password.by.email&lt;br /&gt;&lt;br /&gt;    You shouldn't add this kind of "fake" mask unless you know or strongly suspect that somebody is trying to steal your nickname. If you include these, clearly the CSop will not give out the password to anyone, even you.&lt;br /&gt;&lt;br /&gt;    If you add an "only send my password by email" mask, don't forget to make sure your email address is specified for the nickname (see /nickserv help set email for more information).&lt;br /&gt;&lt;br /&gt;10 · Summary&lt;br /&gt;&lt;br /&gt;Here's the quick way to get a "correct" access list in most cases.&lt;br /&gt;&lt;br /&gt;   1.&lt;br /&gt;&lt;br /&gt;      Type /nickserv access list&lt;br /&gt;   2.&lt;br /&gt;&lt;br /&gt;      Type /nickserv access wipe&lt;br /&gt;   3.&lt;br /&gt;&lt;br /&gt;      If you want your nickname to be completely "secure", stop now, don't do any other commands. You'll have to use the /nickserv identify password command each time you log on to DALnet. (Note: There is a short form of this command, /identify password, which you may find useful.)&lt;br /&gt;   4.&lt;br /&gt;&lt;br /&gt;      Type /whois YourNick (where you replace YourNick with your nick). The result should be:&lt;br /&gt;&lt;br /&gt;      YourNick is youruser@stupidnumber.hostname * Your silly message&lt;br /&gt;   5.&lt;br /&gt;&lt;br /&gt;      If there was some stupid number there in the hostname (after the @ symbol) then you probably have a dynamic address: type /nickserv access add youruser@*.hostname (replacing "youruser" and "hostname" with the actual values from the /whois command.)&lt;br /&gt;&lt;br /&gt;      If there wasn't a number then you probably have a static address. The result from /whois actually looked like:&lt;br /&gt;&lt;br /&gt;      YourNick is youruser@hostname&lt;br /&gt;&lt;br /&gt;      In this case, type /nickserv access add youruser@hostname (replacing "youruser" and "hostname" with the actual values)&lt;br /&gt;   6.&lt;br /&gt;&lt;br /&gt;      That's it, you're done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-2433722284789794054?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/2433722284789794054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=2433722284789794054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/2433722284789794054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/2433722284789794054'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/nickserv-access-lists.html' title='Nickserv Access Lists'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-4559229982741404438</id><published>2008-03-20T19:27:00.000-07:00</published><updated>2008-04-01T10:04:00.282-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>DALnet NickServ Registration</title><content type='html'>DALnet NickServ Registration&lt;br /&gt;&lt;br /&gt;Version 2.2.3&lt;br /&gt;&lt;br /&gt;Last revised by eDdYk0nG (eddykong87@yahoo.com) on 2008-01-18&lt;br /&gt;&lt;br /&gt;Originally written by Kzoo (kzoo@dal.net) and Wizzu (wizzu@dal.net) on 2000-10-01&lt;br /&gt;&lt;br /&gt;Copyright © 2000-2008 by the DALnet IRC Network&lt;br /&gt;&lt;br /&gt;Please direct any comments or feedback about this document (only! no help requests!) to docs@dal.net. If you need help on issues not covered in this document, please see the information at http://help.dal.net.&lt;br /&gt;Introduction&lt;br /&gt;&lt;br /&gt;This document describes the steps to follow in order to register a nickname on DALnet. It also covers other commands and concerns related to the email requirement of the nickname registration (see below).&lt;br /&gt;&lt;br /&gt;DALnet nickname (nick) registration is now a two-step process. An email address has to be set for nicknames. Nickname registrations that have not been confirmed through email or IRC will expire within 72 hours. It's therefore very important to set a valid email address.&lt;br /&gt;&lt;br /&gt;This document was based on the #ServHelp session held by the DALnet Events Team - http://help.dal.net/events.&lt;br /&gt;Contents&lt;br /&gt;&lt;br /&gt;    * 1 How to register your nick&lt;br /&gt;    * 2 How to identify to your nick&lt;br /&gt;    * 3 How to confirm your registration&lt;br /&gt;    * 4 Changing Your Email Address&lt;br /&gt;    * 5 Why setting the email address is important&lt;br /&gt;          o 5.1 Privileges of a Completely Registered Nickname&lt;br /&gt;          o 5.2 Sending passwords through email&lt;br /&gt;    * 6 Email address privacy&lt;br /&gt;          o 6.1 "I don't want to give my email address to you!"&lt;br /&gt;    * 7 Troubleshooting and Frequently Asked Questions (F.A.Q.)&lt;br /&gt;&lt;br /&gt;1 · How to register your nick&lt;br /&gt;&lt;br /&gt;The command for registering your nick is as follows:&lt;br /&gt;&lt;br /&gt;/nickserv register password email address&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;/nickserv register PeanuttyButteryPass12 janet@peanutbutter.ca&lt;br /&gt;&lt;br /&gt;Where PeanuttyButtery12 would be the password and janet@peanutbutter.ca would be the working email address.&lt;br /&gt;&lt;br /&gt;There are many things you should keep in mind when chosing a password. Please see the DALnet's Password Guide at http://docs.dal.net/docs/passwords.html for further information on this subject.&lt;br /&gt;&lt;br /&gt;You will be required to confirm your nickname registration before you have access to all the features available with services. Therefore it's very important for you to use a valid email address. Please see section 3 for more information.&lt;br /&gt;2 · How to identify to your nick&lt;br /&gt;&lt;br /&gt;You will be required to identify to your nickname before being able to use a number of commands. There are actually many ways to identify, the two most popular being:&lt;br /&gt;&lt;br /&gt;/msg nickserv@services.dal.net identify nick password&lt;br /&gt;/nickserv identify nick password&lt;br /&gt;&lt;br /&gt;It is possible to identify to a nickname that you are not using at the time. If you solely wish to identify to your current nickname, then the nick parameter can be excluded. Examples:&lt;br /&gt;&lt;br /&gt;/msg nickserv@services.dal.net identify PeanuttyButteryPass12&lt;br /&gt;/msg nickserv@services.dal.net identify PeanutButterLover PeanuttyButteryPass12&lt;br /&gt;/nickserv identify PeanuttyButteryPass12&lt;br /&gt;/nickserv identify PeanutButterLover PeanuttyButteryPass12&lt;br /&gt;&lt;br /&gt;Other methods of identifying to NickServ include:&lt;br /&gt;&lt;br /&gt;/quote nickserv identify nick password&lt;br /&gt;/identify nick password&lt;br /&gt;/services identify nick password&lt;br /&gt;&lt;br /&gt;As with the previous commands, the nick parameter is optional if you only intend to identify to the nick that you are currently using.&lt;br /&gt;&lt;br /&gt;NOTE: It is a good idea to type all services commands in the status window (or, if your IRC client does not have a status window, another place which is not a channel or message window) to avoid accidentally showing your password. For example, sending your password to an open channel if you forget the slash (/) in the command.&lt;br /&gt;&lt;br /&gt;Under no circumstances should you ever attempt to identify to anyone other than NickServ or ChanServ. So, if you meet people with nicks of MickServ, NickSrv, etc. be distrustful. You could lose your nickname and any privileges associated with it, should the password fall into the hands of someone else. Keep in mind that you and you alone are responsible for protecting your password. You can find a comprehensive guide on Services or IRC Operator impersonators at http://docs.dal.net/docs/ircimps.html.&lt;br /&gt;&lt;br /&gt;If you cannot identify to your nick, please remember that passwords are case sensitive. That means that NickServ recognizes upper- and lower-case letters separately, for example "apple", "APPLE" and "aPPLe" would all be different passwords. Be sure you are typing your password correctly. If you continue to get an error message, try the SENDPASS command described at http://docs.dal.net/docs/nickserv.html. If that doesn't work, try looking for an IRC Operator. Instructions on finding one can be obtained at http://docs.dal.net/docs/findoper.html.&lt;br /&gt;3 · How to confirm your registration&lt;br /&gt;&lt;br /&gt;Within an hour or so, you will receive email from "DALnet User Registration" sent to the address you have set. In this mail you will be told your authorization (AUTH) code and how to use it, to complete your nickname registration.&lt;br /&gt;&lt;br /&gt;If your email client supports it, the easiest way to authorize is to click on the Web address (beginning with "http://users.dal.net/cgi-bin/verify.cgi?") in the email. However, if this is not possible for you, then do the following:&lt;br /&gt;&lt;br /&gt;   1.&lt;br /&gt;&lt;br /&gt;      The email you were sent contains a command you can use to send the authorization code. If possible, copy this command into the computer's paste-buffer. If you can't do that, write it down carefully on a piece of paper.&lt;br /&gt;   2.&lt;br /&gt;&lt;br /&gt;      Connect to DALnet (irc.dal.net 7000).&lt;br /&gt;   3.&lt;br /&gt;&lt;br /&gt;      If you copied the command, paste it in to your IRC client. If you wrote it down, type it in.&lt;br /&gt;   4.&lt;br /&gt;&lt;br /&gt;      Send the command. You should receive confirmation from NickServ that you have been authorized. (On some IRC clients, this will appear in your status window.)&lt;br /&gt;&lt;br /&gt;      -NickServ- Mission accomplished! The nick YourNick is fully&lt;br /&gt;      -NickServ- registered. You now have access to change your nick&lt;br /&gt;      -NickServ- settings, send memos to other users and use DALnet's&lt;br /&gt;      -NickServ- registered user web site at http://users.dal.net&lt;br /&gt;&lt;br /&gt;If you need to use "/quote nickserv" or "/msg nickserv@services.dal.net", simply copy/paste the rest of the command from your email following the "/nickserv" part of the command.&lt;br /&gt;&lt;br /&gt;Should you try to set an AUTH code for a nick which is already fully registered, NickServ will respond that&lt;br /&gt;&lt;br /&gt;-NickServ- This nick is already fully registered.&lt;br /&gt;4 · Changing Your Email Address&lt;br /&gt;&lt;br /&gt;You may want to change the address associated with your nick.&lt;br /&gt;&lt;br /&gt;The actual command for changing an email address is:&lt;br /&gt;&lt;br /&gt;/nickserv set email nickpass email address&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;/nickserv set email mypass123 janice@delightful.net&lt;br /&gt;&lt;br /&gt;Please note that the un-complete nickname are also able to change the emaill address. Changing an email address is a two-stage process. When an email address change is requested, an email will first be sent to the current address. This email will explain that an address change was requested and give you the opportunity to abort the change within 72 hours. If the change is not aborted after 72 hours, a confirmation email will be sent to the new address, allowing the user to complete the change.&lt;br /&gt;&lt;br /&gt;You can use the SET EMAIL command without any parameters to view the email address that you currently have set for your nickname:&lt;br /&gt;&lt;br /&gt;/nickserv set email&lt;br /&gt;5 · Why setting the email address is important&lt;br /&gt;5.1 Privileges of a Completely Registered Nickname&lt;br /&gt;&lt;br /&gt;As of 31st October 2000, DALnet required that every registered nickname had a valid email address set. Nicknames without an associated email address were expired at that date.&lt;br /&gt;&lt;br /&gt;Some of the privileges you have before the nickname is authorized include the following:&lt;br /&gt;&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      You can use the identify command&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      You can use the set email command&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      You can use the drop command&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      You can log into http://users.dal.net&lt;br /&gt;&lt;br /&gt;Privileges not available to a partially registered nickname include the following:&lt;br /&gt;&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      You cannot use MemoServ to send or receive memos&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      You cannot use the NickServ access list feature (the access command)&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      These NickServ commands are not available to you: set enforce, set url, set mailblock, set noop, ghost, recover and release&lt;br /&gt;&lt;br /&gt;For additional information on these commands, please visit http://docs.dal.net/docs/nickserv.html, type /nickserv help while on DALnet, or visit http://www.dal.net/services.&lt;br /&gt;5.2 Sending passwords through email&lt;br /&gt;&lt;br /&gt;The whole purpose of setting an email address for your nick is so that a forgotten password may be sent to you through email. This is a more secure means of obtaining lost passwords than trying to convince a CSop that you are the true owner of the nick. Whenever a password is requested for a nick, it is sent to the email address currently associated with that nick.&lt;br /&gt;&lt;br /&gt;NOTE: It is your responsibility to maintain good access security for your email. If your email account is password-protected, using the same password for your email as you used for the nick is not a good idea. Should one password be discovered, chances are other things associated with the same password could also be compromised.&lt;br /&gt;&lt;br /&gt;How does this password process work? As of 12th July 2001, DALnet allows its users to have their passwords sent to them through the SENDPASS command. You must have the email address for the nickname when requesting a nickname SENDPASS and the email address for the founder's nickname when requesting a channel sendpass. Only one SENDPASS per email address is allowed every 72 hours. Thus, if someone forgets both their nickname and channel password, they will have to wait.&lt;br /&gt;&lt;br /&gt;The security of the password is further protected by a second restriction. Only a certain number of SENDPASSes may be requested by the same IP or host in a certain amount of time.&lt;br /&gt;&lt;br /&gt;The syntax of the SENDPASS command is explained at http://docs.dal.net/docs/nickserv.html.&lt;br /&gt;&lt;br /&gt;CSops are still available for password or ownership questions that the user cannot solve on their own. Your email address is not revealed to the IRCop during a sendpass. NickServ handles the sending of the email automatically.&lt;br /&gt;&lt;br /&gt;Once again, instructions on how to find an IRCop can be found at http://docs.dal.net/docs/findoper.html.&lt;br /&gt;6 · Email address privacy&lt;br /&gt;&lt;br /&gt;DALnet's email privacy statement is available at http://www.dal.net/emailinfo.html. It describes the firm policy DALnet has on protecting your email address. Under no circumstances will DALnet provide the list of email addresses to anyone. If you are concerned about your email address' privacy, please read the statement.&lt;br /&gt;&lt;br /&gt;Once again, IRC operators asking NickServ to send passwords to users do not see the email address, since this is an automated process.&lt;br /&gt;&lt;br /&gt;Other users will not be able to see your email address, unless you want them to. If you do not do anything about your email address after you have set it, no one will be able to see it. If you do want to show your email address in your visible NickServ information (available with /nickserv info yournick), you can set that up as follows. After identifying for your nickname, type this command:&lt;br /&gt;&lt;br /&gt;/nickserv set showemail on&lt;br /&gt;&lt;br /&gt;Should you change your mind and want to remove your email from your visible information, the command is:&lt;br /&gt;&lt;br /&gt;/nickserv set showemail off&lt;br /&gt;&lt;br /&gt;As mentioned previously, your email security is your responsibility. DALnet is not responsible for spam messages or stolen passwords due to the negligence of the owner. Although using SHOWEMAIL has its advantages if you have forgotten the email and the password and you want to use SENDPASS, people can see your email address and may send you spam mail. If you share your email account with someone else, that someone can get your nick password. Strictly speaking, passwords are confidential and should not be shared.&lt;br /&gt;&lt;br /&gt;If you do not want to use your actual email address, please use one of the many free accounts available on the web. However, it is safe not to use these free accounts due to the security threat that may arise. Also, please keep your email address setting current. DALnet cannot be responsible for nicknames which have an invalid email address set.&lt;br /&gt;6.1 "I don't want to give my email address to you!"&lt;br /&gt;&lt;br /&gt;That is certainly your right. However, we would like to point out that DALnet is a free service. There are lots of other free services out there that may ask you for your email address in order to serve you better. DALnet does not oblige you to register your nick in order to log on to our servers.&lt;br /&gt;&lt;br /&gt;For those who are really sensitive about their email address privacy, we recommend that you get a free email service to complete the registration of your nick. Once that is done, you can forget all about this email account if you'd like. However, keep in mind that if you do this, you will forfeit all rights to password assistance in the future.&lt;br /&gt;7 · Troubleshooting and Frequently Asked Questions (F.A.Q.)&lt;br /&gt;&lt;br /&gt;Question: NickServ tells me that the AUTH code is incorrect. What should I do?&lt;br /&gt;&lt;br /&gt;    Answer: You should first be sure that the number you have entered is correct. This is why copy and paste is recommended whenever possible. It may also be possible that you have changed your email address and are entering the number for the former address. Please read the entire email you receive to be sure that the number you are entering is the AUTH code for that nickname. In setting emails for several nicks, confusion like this could easily happen.&lt;br /&gt;&lt;br /&gt;    In addition, if you have changed your email address since the last registration, a new authorization code would have been sent to the second email account. Only this new authorization code will work to complete your nickname registration.&lt;br /&gt;&lt;br /&gt;    You can also request another authorization code from services by resetting your email address with the SET EMAIL command (section 4). If NickServ tells you that you have already set the email address then you can get around it by specifying a bogus email address before setting it back to your real email.&lt;br /&gt;Question: When I tried to set my email address, I made a typo. What should I do?&lt;br /&gt;&lt;br /&gt;    Answer: As long as it is within 24 hours of the time you registered your nick you can change it. You first identify to your nickname. Then you can use the SET EMAIL command (section 4) to set the correct email address.&lt;br /&gt;&lt;br /&gt;    Please remember that if the original address was not correct, you will not get the first AUTH code from Services. When you receive the email message at the correct address, go ahead and enter the AUTH code as described above.&lt;br /&gt;Question: Someone is using my half-registered nick. How can I get it back if I can't use the RECOVER or GHOST commands?&lt;br /&gt;&lt;br /&gt;    Answer: Check your email for the authorization code and enter it in order to complete the registration of your nickname. Once this is done, the RECOVER and GHOST commands will become available to you.&lt;br /&gt;Question: I didn't get my AUTH code by email. What should I do now?&lt;br /&gt;&lt;br /&gt;    Answer: There are several reasons why this might happen. The first one is that there was a typo in the email address. You can verify what NickServ thinks the address should be by using:&lt;br /&gt;&lt;br /&gt;    /nickserv set email&lt;br /&gt;&lt;br /&gt;    If the email address is incorrect, you can use the following to set the correct email address:&lt;br /&gt;&lt;br /&gt;    /nickserv set email nickpass email address&lt;br /&gt;&lt;br /&gt;    Another reason may be that there is lag in the email message being sent out. If many people have set their email addresses for their nicknames, the queue of messages to be sent may be long. Please wait at least six hours before asking for help.&lt;br /&gt;&lt;br /&gt;    You may not be setting a valid email address. You must use an email address that actually works. If you do not want to use your official address, please find a free email account on the web. Remember, it is up to you to keep this address active, since that is where any passwords may be sent in the event of you forgetting the password. Also, a DALnet email address is not a valid address for this purpose. See section 6.1 for further information.&lt;br /&gt;Question: I think someone has hacked my password to my nick and my email.&lt;br /&gt;&lt;br /&gt;    Answer: Password security is your responsibility.&lt;br /&gt;&lt;br /&gt;    Try to have your password sent to you using the SENDPASS command described at http://docs.dal.net/docs/nickserv.html. If this doesn't work, please go to #operhelp and wait to be voiced by someone who is opped in the channel. Do not respond to any messages from anyone but an op. There is a help document that deals with how to find to an IRC operator while on DALnet. You can access it from http://docs.dal.net/docs/findoper.html.&lt;br /&gt;&lt;br /&gt;    Here are some instructions for good password security:&lt;br /&gt;&lt;br /&gt;        *&lt;br /&gt;&lt;br /&gt;          Choose a password that is at least seven characters long and contains both upper- and lower-case letters as well as some numbers.&lt;br /&gt;        *&lt;br /&gt;&lt;br /&gt;          Never type in Services commands in a channel window, instead use another window (for example, the status window if your IRC client has one).&lt;br /&gt;        *&lt;br /&gt;&lt;br /&gt;          Do not script passwords on your computer, since others may gain access with or without your knowledge. You should also be careful of the scripts that you are using. Some of them allow other people to not only steal your passwords, but to also control your computer.&lt;br /&gt;        *&lt;br /&gt;&lt;br /&gt;          If you identify to your nickname while in a cybercafe, library or any other public domain Internet service, be sure that no one else can see your password and that no password stealing scripts are loaded. It might also be prudent to make sure that "logging" has not been turned on.&lt;br /&gt;        *&lt;br /&gt;&lt;br /&gt;          Never share passwords with anyone and be aware that no one from DALnet will message you for your password. The only time you may be asked about a password is by a CSop you have approached for password help.&lt;br /&gt;&lt;br /&gt;The&lt;br /&gt;DALnet&lt;br /&gt;IRC&lt;br /&gt;Network!&lt;br /&gt; &lt;br /&gt;IRC:&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;/server irc.dal.net 7000 (also port 6667)&lt;br /&gt;Web:&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;http://www.dal.net/&lt;br /&gt;Help:&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;http://help.dal.net/&lt;br /&gt;FTP:&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;ftp://ftp.dal.net/&lt;br /&gt;Email:&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;help@dal.net (help), docs@dal.net (help documents), suggest@dal.net (suggestions and comments)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6612482651096757248-4559229982741404438?l=setrums.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://setrums.blogspot.com/feeds/4559229982741404438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6612482651096757248&amp;postID=4559229982741404438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/4559229982741404438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6612482651096757248/posts/default/4559229982741404438'/><link rel='alternate' type='text/html' href='http://setrums.blogspot.com/2008/03/dalnet-nickserv-registration.html' title='DALnet NickServ Registration'/><author><name>KuTuKuprEt</name><uri>http://www.blogger.com/profile/07684924901986246118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6612482651096757248.post-1948919610140947188</id><published>2008-03-20T19:25:00.000-07:00</published><updated>2008-04-01T10:04:00.283-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='About IRC'/><title type='text'>ChanServ Information</title><content type='html'>ChanServ Information&lt;br /&gt;&lt;br /&gt;Version 1.1.7&lt;br /&gt;&lt;br /&gt;Last revised by Zappu (zappu.dalnet@gmail.com) on 2007-09-16&lt;br /&gt;&lt;br /&gt;Originally written by Mystro (mystro@canshell.com) on 2001-04-26&lt;br /&gt;&lt;br /&gt;Copyright © 2001-2007 by the DALnet IRC Network&lt;br /&gt;&lt;br /&gt;Please direct any comments or feedback about this document (only! no help requests!) to docs@dal.net. If you need help on issues not covered in this document, please see the information at http://help.dal.net.&lt;br /&gt;Introduction&lt;br /&gt;&lt;br /&gt;ChanServ has been created in order to stop channel takeovers, automate channel management, and to make life easier for users in general. Over the years many different commands have been added to ChanServ. These commands are discussed in this document.&lt;br /&gt;&lt;br /&gt;ChanServ may be accessed through either /chanserv or /msg chanserv@services.dal.net. For the purpose of this document, we will use /chanserv as the command, however, some IRC clients (e.g. BitchX) do not support /chanserv and you will have to use /msg chanserv@services.dal.net.&lt;br /&gt;Contents&lt;br /&gt;&lt;br /&gt;    * 1 Registering a channel&lt;br /&gt;    * 2 Dropping a channel&lt;br /&gt;    * 3 Identifying as a channel's founder&lt;br /&gt;    * 4 Retrieving a password&lt;br /&gt;    * 5 Adding/removing/listing SOps&lt;br /&gt;    * 6 Adding/removing/listing AOps&lt;br /&gt;    * 7 Adding/removing/listing AKicks&lt;br /&gt;    * 8 Oping / Deoping people&lt;br /&gt;    * 9 Mass kicking a channel&lt;br /&gt;    * 10 Mass Deoping a channel&lt;br /&gt;    * 11 Setting options in channels&lt;br /&gt;          o 11.1 Changing channel founders&lt;br /&gt;          o 11.2 Changing channel passwords&lt;br /&gt;          o 11.3 Changing channel description&lt;br /&gt;          o 11.4 Changing the channel modes&lt;br /&gt;          o 11.5 Setting OPGUARD on and off&lt;br /&gt;          o 11.6 Setting KEEPTOPIC on and off&lt;br /&gt;          o 11.7 Making a URL show in the info&lt;br /&gt;          o 11.8 Ops have to identify before getting opped&lt;br /&gt;          o 11.9 Restricting a channel to AOps and higher&lt;br /&gt;          o 11.10 Turning VERBOSE on and off&lt;br /&gt;          o 11.11 Setting who can change the topic&lt;br /&gt;          o 11.12 Allowing users who join to stay opped&lt;br /&gt;          o 11.13 Founder does not need to identify&lt;br /&gt;          o 11.14 Making the channel private&lt;br /&gt;          o 11.15 Setting who may send channel-wide memos&lt;br /&gt;          o 11.16 Setting the successor of the channel&lt;br /&gt;          o 11.17 Setting the web password for the channel&lt;br /&gt;          o 11.18 Setting the mailblock option for the channel&lt;br /&gt;    * 12 Inviting yourself into the channel&lt;br /&gt;    * 13 Viewing the access of a person&lt;br /&gt;    * 14 Why a person opped&lt;br /&gt;    * 15 Unbanning yourself and others&lt;br /&gt;    * 16 Counting AOps/SOps and AKicks&lt;br /&gt;    * 17 Finding information on a channel&lt;br /&gt;    * 18 Channel Security&lt;br /&gt;    * 19 Conclusion&lt;br /&gt;    * 20 Credits&lt;br /&gt;&lt;br /&gt;1 · Registering a channel&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv register #channel password description&lt;br /&gt;&lt;br /&gt;Information: The REGISTER command allows a user to register his/her channel (if it is not already registered) quickly and painlessly by typing one line. In order to register a channel, the user must specify the channel, the password that he or she, and a short description of his channel.&lt;br /&gt;&lt;br /&gt;Note: Under no circumstances should you give out the password to anyone. DALnet will NOT help with takeovers if you have shared your password. Also, try to make your password something that might be simple to you but would be hard for others to guess.&lt;br /&gt;&lt;br /&gt;In order to find out if a channel is registered or not, type /chanserv info #channel, more on that later. Also, do not forget to use the # sign when registering a channel.&lt;br /&gt;&lt;br /&gt;Example: /chanserv register #mystro m3dj35 My home online.&lt;br /&gt;&lt;br /&gt;This would register the channel #mystro with the password m3dj35 (a pretty complex password for someone to just guess out of the blue) and the description "My home online."&lt;br /&gt;2 · Dropping a channel&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv drop #channel [dropcode]&lt;br /&gt;&lt;br /&gt;Information: This command will allow you to drop a channel you are a founder of. You must first use the command alone and then you will receive a drop code which you type in with the command.&lt;br /&gt;&lt;br /&gt;Note: You must identify to the channel before being able to drop it.&lt;br /&gt;&lt;br /&gt;Example: /chanserv drop #mystro&lt;br /&gt;&lt;br /&gt;This is the initial command, after which I would see something like this in my status window:&lt;br /&gt;&lt;br /&gt;-ChanServ- Dropping a channel is permanent and cannot be undone!&lt;br /&gt;&lt;br /&gt;-ChanServ- To confirm, type: /chanserv DROP #mystro 13151683216&lt;br /&gt;&lt;br /&gt;After that, I would type the command /chanserv DROP #mystro 13151683216 to finalize if I was sure.&lt;br /&gt;3 · Identifying as a channel's founder&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv identify #channel password&lt;br /&gt;&lt;br /&gt;Information: The identify command identifies the user as the founder of that channel and gives the user access to founder-based commands. You may also use /identify #channel password and /services identify #channel password (This may not work on some clients).&lt;br /&gt;4 · Retrieving a password&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv sendpass #channel email&lt;br /&gt;&lt;br /&gt;Information: The sendpass command allows the founder to have his channel password sent to the email address associated with the channel in the services database. Using that function, the founder may have his password sent to him incase of a lost/forgotten password. The foundernick for that channel must be identified before that command can be used.&lt;br /&gt;&lt;br /&gt;Note: It is suggested that you set your email address to a permanent email address that will not change over time (not an email that came with your ISP, as you may change ISPs in the future). If your email is changed and you have lost your password, you will not be able to retrieve it.&lt;br /&gt;5 · Adding/removing/listing SOps&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv sop #channel add/del/list/wipe [nick]&lt;br /&gt;&lt;br /&gt;Information: The command allows the founder to add or remove a SuperOP to the channel access list. The list command, however, can be accessed by AOps' and up.&lt;br /&gt;&lt;br /&gt;Note: SOps have access to very important commands (AOp additions and removal, akick adittion/removal, etc...) and therefore should be picked very carefully. You may not have more than 100 SOps on ChanServ's access list. Wipe may only be used by founder.&lt;br /&gt;6 · Adding/removing/listing AOps&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv aop #channel add/del/list/wipe [nick]&lt;br /&gt;&lt;br /&gt;Information: This command lets any SOp or the Founder add or remove auto ops from the channel. The LIST argument in the command can be accessed by AOps and up.&lt;br /&gt;&lt;br /&gt;Note: The AOp list is limited to 300 entries. Wipe may only be used by founder&lt;br /&gt;7 · Adding/removing/listing AKicks&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv akick #channel add/del/list/wipe [nick/host]&lt;br /&gt;&lt;br /&gt;Information: Akicks are Auto Kicks and may be added by a SOp or Founder; however only a founder may wipe akicks. Akicks can be added by nickname or hostname. Also, you may specify list patterns (*word*). Wipe may only be used by founder.&lt;br /&gt;8 · Oping / Deoping people&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv op/deop #channel nickname&lt;br /&gt;&lt;br /&gt;Information: This command is pretty simple, it allows you to op or deop a nickname in a channel without having to be opped or even be in the channel. You must be an AOp or higher in order to use this command.&lt;br /&gt;&lt;br /&gt;Note: You may not deop someone who has higher ChanServ access than you&lt;br /&gt;9 · Mass kicking a channel&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv mkick #channel&lt;br /&gt;&lt;br /&gt;Information: The MKick (Mass Kick) command is used in case of a desync (more information in the Netsplits document) in which case the channel has to be closed and reopened. This command evacuates a channel completely by kicking everyone out, banning *!*@* (everyone), setting mode +i (invite only) and +l 1. When MKICKing a channel, you cannot UNBAN or INVITE yourself back into the channel. This should only be used in a takeover situation.&lt;br /&gt;&lt;br /&gt;Note: Masskicks are limited to one an hour, and are only available to SOP's and Founders. The command may not be used if someone higher than you is in the channel. SOps can't mkick when the founder is present.&lt;br /&gt;10 · Mass Deoping a channel&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv mdeop #channel&lt;br /&gt;&lt;br /&gt;Information: The MDEOP command will deop everyone in the channel who have equal or less access in ChanServ than the person using the command. (e.g. AOps can only deop regular ops and other Ops, SOps can only deop other SOps, AOps and the regular ops.)&lt;br /&gt;11 · Setting options in channels&lt;br /&gt;&lt;br /&gt;The SET command has many different arguments including FOUNDER, PASSWD, DESC, MLOCK, OPGUARD, KEEPTOPIC, URL, IDENT, RESTRICT and VERBOSE. All these commands will modify and change how ChanServ acts in your channel and you should take some time to get familiar with them as they will help you in keeping your channel secure.&lt;br /&gt;&lt;br /&gt;Note: To use the ChanServ SET command and its arguments, make sure you are identified as the channel founder (more below).&lt;br /&gt;11.1 Changing channel founders&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv set #channel founder&lt;br /&gt;&lt;br /&gt;Information: The FOUNDER argument of the set command will allow the user that uses this command to change the channel founder to himself.&lt;br /&gt;&lt;br /&gt;Note: The nickname that the user is using must be registered or the command will not work&lt;br /&gt;11.2 Changing channel passwords&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv set #channel passwd oldpassword newpassword&lt;br /&gt;&lt;br /&gt;Information: This argument will change the password of the channel from an old password to a new password. It is a good idea to rotate your password once every few months to improve security (more on that in the Security section).&lt;br /&gt;&lt;br /&gt;Note: You must identify to the channel before being able to use this command.&lt;br /&gt;&lt;br /&gt;Example:/chanserv set #mystro passwd m3dj35 m3dj36&lt;br /&gt;&lt;br /&gt;This command will set the channel password from m3dj35 to m3dj36&lt;br /&gt;11.3 Changing channel description&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv set #channel desc newdescription&lt;br /&gt;&lt;br /&gt;Information: The DESC argument lets a user change the description of his or her channel which can be viewed through the /chanserv info command (more on that later).&lt;br /&gt;&lt;br /&gt;Example: /chansev set #mystro desc Mystro's home on the web!&lt;br /&gt;&lt;br /&gt;This command will change #mystro's channel description to 'Mystro's home on the web!'&lt;br /&gt;11.4 Changing the channel modes&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv set #channel mlock modes&lt;br /&gt;&lt;br /&gt;Information: The MLOCK command is one of the most important commands to maintain channel security. Below is a list of all the possible modes and what they do:&lt;br /&gt;&lt;br /&gt;+R - Only registered nicks allowed. Very useful if you wish to stop clone attacks, since most clone attacks use unregistered nicks.&lt;br /&gt;&lt;br /&gt;+n - No external messages. This option prevents people who are not in channel from sending messages to that channel.&lt;br /&gt;&lt;br /&gt;+t - Only ops set topic. This command will make sure non-ops cannot change the topic of the channel. There are also a few ChanServ settings that can help with more specific topic settings (only SOps/AOps can change topic) , more on that below.&lt;br /&gt;&lt;br /&gt;+s and +p - Both commands set the channel to be invisible in /list commands, but +s also sets it invisible in whois, both settigs are a good way to keep unwanted users out of channel.&lt;br /&gt;&lt;br /&gt;+i - This option makes the channel closed to anyone unless an op invites them or they have ChanServ invite them using the /chanserv invite command.nnel has at a time, which is a good technique for clone protection. (More on that in the Security section).&lt;br /&gt;&lt;br /&gt;+m - This option prevents anyone who is not voiced or OPed from talking in the channel.&lt;br /&gt;&lt;br /&gt;+c - This option will disable any control codes (color, bold, underline, reverse) from being sent to the channel and will those messages. Also useful against clone attacks.&lt;br /&gt;&lt;br /&gt;For more information on modes check out http://docs.dal.net/docs/modes.html&lt;br /&gt;&lt;br /&gt;Note: Some of the options require another argument (ie. +l needs a number, +k needs a password) so the arguments need to be specified in the order of the options. (ie. +kl password number)&lt;br /&gt;&lt;br /&gt;Example: /chanserv set #mystro mlock +ntR-s&lt;br /&gt;&lt;br /&gt;This command would set #mystro to +ntR-s which means only ops can change topic, no external messages, registered nicks only and secret can't be set.&lt;br /&gt;11.5 Setting OPGUARD on and off&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv set #channel opguard on/off&lt;br /&gt;&lt;br /&gt;Information: When this argument is set on only AOps, SOps and the Founder will be allowed to be an op in the channel, everyone else will automatically be deopped.&lt;br /&gt;11.6 Setting KEEPTOPIC on and off&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv set #channel keeptopic on/off&lt;br /&gt;&lt;br /&gt;Information: If a channel becomes empty (last person leaves), ChanServ will save the topic if this option is set on so that next time someone comes in the topic will be recreated with the nick who set it.&lt;br /&gt;11.7 Making a URL show in the info&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv set #channel url [URLhere]&lt;br /&gt;&lt;br /&gt;Information: This command lets you set the URL for your channel which can be viewed through the /chanserv info command. To remove a URL, type the command without a URL at the end.&lt;br /&gt;11.8 Ops have to identify before getting opped&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv set #channel ident on/off&lt;br /&gt;&lt;br /&gt;Information: The ident argument regulates whether people can get opped in the channel automatically without having to identify (access list) or must identify. (Please see http://docs.dal.net/docs/nickserv.html#5 for more information on access lists).&lt;br /&gt;11.9 Restricting a channel to AOps and higher&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv set #channel restrict on/off&lt;br /&gt;&lt;br /&gt;Information: The RESTRICT argument, when set on, will not allow anyone who is not on the channel access list to join the channel and will automatically kick and ban them.&lt;br /&gt;11.10 Turning VERBOSE on and off&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv set #channel verbose on/off&lt;br /&gt;&lt;br /&gt;Information: The VERBOSE argument, when set on, will notify channel ops of any changes made to the channel access list (ie. aop added/removed, sop added/removed, akick added/removed).&lt;br /&gt;&lt;br /&gt;An example of output would be:&lt;br /&gt;&lt;br /&gt;-ChanServ:@#mystro- [VERBOSE] Mystro!mystro@sun.2kservices.com =&gt; aop #mystro add |Mystro|&lt;br /&gt;11.11 Setting who can change the topic&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv set #channel topiclock founder/sop/off&lt;br /&gt;&lt;br /&gt;Information: The TOPICLOCK command, when turned on, will allow you to set who should be able to change the topic: You (the founder), a SOp, or anyone else (off).&lt;br /&gt;11.12 Allowing users who join to stay opped&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv set #channel leaveops on/off&lt;br /&gt;&lt;br /&gt;Information: This command, when turned on, will not deop the first user to join the channel regardless of whether he is an op or not, if set off (as it is by default), it will deop anyone who is not AOp or higher. It is recommended you leave this setting untouched for security.&lt;br /&gt;11.13 Founder does not need to identify&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv set #channel unsecure&lt;br /&gt;&lt;br /&gt;Information: This command, when turned on, will allow anyone on the founder's nick access list to make founder type changes to the channel. This may be a large security compromise if the founder does not have a very secure nickserv access list (please see the NickServ document for more information). It is suggested to leave this argument untouched.&lt;br /&gt;11.14 Making the channel private&lt;br /&gt;&lt;br /&gt;Syntax: /chanserv set #channel private on/off&lt;br /&gt;&lt;br /&gt;Information: This setting, when turned on, will prevent the /chanserv invite command from being used. Only AOps and above will be able to see the channel topic w
