مقدمه‌ای بر IRC

May 22, 2013·

7 min read

مقدمه

شروع کارم با IRC به مدت‌ها قبل بر می‌گردد‌. اما همین چند وقت پیش که نیازم به ارتباط همزمان‌، آن هم با دنگ و فنگ‌های چت GMail (که خودتان دلیل عمده‌اش را بهتر از من می‌دانید) بیشتر شد سعی کردم با این ابزار و امکاناتش بیشتر آشنا شوم. در این پست قصد داریم کمی با این ابزار قدیمی‌، ولی خیلی خیلی کاربردی آشنا شویم. در حد مثلا قطره از دریا ;-)

این دیگر چیست؟

IRC را به صورت ناشیانه می‌توان‌، شهری بزرگ دانست که به محلاتی کوچک (شبکه‌ها) که عمدتا‌، هدف خاصی دارند تقسیم شده. مثلا محله‌ای برای نرم‌افزار‌های آزاد (Freenode) یا مثلا محله‌ای برای هکر‌ها الکترونیک و الی آخر. هر کدام از این محلات به تعداد زیادی خانه (Channel) تقسیم شده‌اند که در آن‌ها تنها حول موضوع خاصی صحبت می‌شود. مثلا زبان برنامه‌نویسی C یا توزیع Slackware. یک‌جور‌هایی مثل همان اتاق‌های چت است که احتمالا اگر هم دوران من باشید‌، خوب به خاطر دارید.

ولی خوب‌، این‌جا دیگر خبری از آن بی‌نظمی‌ها و ناشی‌گری‌های مرسوم در اتاق‌های چت نیست. عموما مدیران این خانه‌ها می‌توانند اگر دست از پا خطا کردید‌، سر نگون‌تان کنند. همین‌طور امکانات جالبی که شبکه‌های IRC فراهم می‌کنند‌، برنامه‌نویسان را قادر می‌سازند که اسکریپت‌های مدیریتی برای این خانه‌ها بنویسند و عملکرد آن‌ها را به چیزی فراتر از یک اتاق چت ارتقا دهند (نمونه‌اش همین PMG که فرود عزیز زحمتش را کشیده بود).

کوچک‌ترین فضای گفتگو در این اجتماع نیز‌، اتاق‌های خصوص‌اند. جایی که می‌توانید بدون ایجاد مزاحمت برای دیگران‌، با شریک‌تان به گفتگو و تبادل نظر بپردازید‌! خوشبختانه با وجود تمامی امکاناتی که IRC فراهم می‌کند‌، این تبادل نظر تنها به کاراکتر‌ها محدود شده‌، وگرنه با ظرفیت بالای ما ایرانی جماعت‌… اهم اهم‌، کجا بود؟ ها می‌گفتم که عموما اجتماعی که در IRC‌ها می‌بینید‌، افراد حرفه‌ای هستند و قصد اتلاف وقت‌شان را ندارند. این است که همین اول کار پیشنهاد می‌کنم قبل از هول هولکی وارد شدن به این اجتماع‌ها و رونمایی از خودتان‌، ۱۵ دقیقه یک کانال فعال مثلا ‎##C یا چه می‌دانم مثلا ‎#slackware (که هر دو شان در محلهٔ freenode قرار دارند) را مطالعه کنید. منظورم این است که رفتار افراد را ببینید.

آن‌وقت می‌بینید افرادی که با دقت سوال می‌کنند یا حرف می‌زنند چطور جواب می‌گیرند و افرادی که دور از جان‌تان احمقانه به میدان می‌آیند چه نصیب‌شان می‌شود. به هر حال برویم کمی به نقاط فنی قضیه بپردازیم.

چطور می‌توان از IRC استفاده کرد؟

به صورت تکنیکی‌، شما باید یک ارتباط از سمت Client به یکی از Server‌های IRC بر‌قرار کنید. که این به این معناست که انتخاب ابزار اتصال‌تان دست خودتان است. می‌توانید مثلا از ابزار‌های خط فرمانی مثل irssi استفاده کنید. یا مثل من از Hexchat (یک فورک از Xchat غول بازنشستهٔ کلاینت‌های IRC) استفاده کیند. یا شاید مثل من در آینده از erc (کلاینت Emacs ای IRC) بهره بگیرید. حتی اگر حال هیچ کدام را ندارید می‌توانید از یک کلاینت تحت وب که مثل مور و ملخ ریخته بهره بگیرید. این دیگر بسته به خود‌تان است.

بعد از انتخاب کلاینت چه کنیم؟

بعد از انتخاب کلاینت‌ (فرض می‌کنیم که Hexchat) انتخاب‌تان باشد‌، نصبش می‌کنیم و اجرا‌، که همچین چیزی نصیب‌مان می‌شود:

https://cdn.hashnode.com/res/hashnode/image/upload/v1672741995885/YhQom2eNB.pngکه شرحش به قرار زیر است:

  • در بخش User information به معرفی خودتان می‌پردازید. Nick name همان اسم اصلی‌تان است که اگر ثبتش کرده باشید‌، به تنظیم باقی قضایا کاری ندارید. اما اگر ثبتش نکرده‌اید (منظور از ثبت روی شبکهٔ مورد نظر‌تان (همان محله) است) و کس دیگری در همان زمان در حال استفاده از آن اسم باشد‌ یا این اسم را ثبت کرده باشد‌، به انتخاب دوم این لیست تغییر نام می‌دهید. همین اتفاق و شرایط برای انتخاب‌های بعدی صادق است.
  • در بخش Networks‌، محلهٔ مورد نظر‌تان را انتخاب می‌کنید. برای منی که عمدهٔ علایقم مربوط به لینوکسی‌هاست‌، Freenode بهترین انتخاب است. همان‌طور که می‌بینید‌، گزینه‌های انتخاب خیلی خیلی بیشتر از این حرف‌هاست. پیشنهاد من این است که اول دنبال این بگردید که دوست دارید در کدام خانه (Channel) به بحث بنشینید. این‌طوری راحت‌تر می‌توانید آدرس محل مورد نظر‌تان را پیدا کنید.
  • در سمت راست هم یک سری گزینه می‌بینید که از اسم‌شان معلوم است به درد چه کاری می‌خورند. مهم‌ترینش Edit است که اگر Nick name ثبت شده دارید به کار‌تان می‌آید. مثلا من اسم shahinism را در شبکهٔ Freenode ثبت کرده‌ام. برای احراض هویتم (می‌دانم که این عبارت‌های معمول مورد استفاده‌ام نیست. ولی خرداد ۹۲ است و فصل خاصی است که در تمام اجتماعات فارسی زبان وب‌، بسیار عباراتی از این دست می‌شنویم! ما هم مثل اسفنج جذبشان کردیم D:) کافیست در بخش Nickserv password رمز مربوط به Nickname‌ام را وارد کنم که خود Hexchat مراحل اتصال به نام کاربری‌ام را انجام دهد و نیازی به دستورات IRC نباشد.

در آخر هم Connect را می‌زنیم و این نصیبمان می‌شود:

https://cdn.hashnode.com/res/hashnode/image/upload/v1672741997221/AJ3GKqEvMW.pngخوب همان‌طور که می‌بینید الان در محلهٔ Freenode‌ایم. خود Hexchat از ما می‌پرسد که آیا می‌خواهیم به خانه‌ای برویم یا نه‌، که می‌گوییم نه و به صفحهٔ اصلی freenode خیره می‌شویم… بهتر است اول نام‌مان را ثبت کنیم. چطور؟ این‌جا توضیح داده. خودم توضیح‌اش نمی‌دهم چون با این مقاله خیلی خیلی بهتر از گفته‌های من می‌توانید بفهمید چه خبر است!

بعد از ثبت نام

حالا بعد از ثبت نام می‌توانیم به یکی از خانه‌ها برویم؟ بله‌، ولی بهتر است اول به خانهٔ خود freenode به آدرس ‎#freenode برویم تا یک درخواست امنیتی از صاحبانش داشته باشیم. قبل از آن‌، توجه کردید که هر وقت خواستم آدرس خانه‌ای را بدهم‌، اولش یک # (Hash) گذاشتم؟ خوب این روش آدرس‌دهی در محلات IRCاست‌! اما چه در خواست امنیتی‌ای؟

الان‌، با وجود این که ثبت‌نام کرده‌اید‌، دیگر کاربران حاضر در شبکه‌، می‌توانند با یک whois ساده‌، IP آدرس‌تان را به دست آورند. کافیست مثلا برای یوزر shahin (که خودم برای تست از آن استفاده می‌کنم) همچین دستوری بزنم:

/whois shahin

که همچین نتیجه‌ای دارد:

https://cdn.hashnode.com/res/hashnode/image/upload/v1672741999295/7V1l8Ex4p.pngو خوب Freenode یک خدمت رایگانی به اسم Cloak ارائه می‌دهد که به صورت پیش‌فرض فعال نیست. برای فعال کردنش باید یکی از مدیران خانهٔ ‎#freenode این کار را برای‌تان انجام دهد. به این خانه بروید و در خواست‌تان را در همان اتاق اصلی بیان کنید. احتمال خیلی زیاد همان لحظه به درخواست‌تان تکبیر می‌گویند و تمام. حالا وقتی whois می‌شوید همچین چیزی معلوم می‌شود:

https://cdn.hashnode.com/res/hashnode/image/upload/v1672742000980/3xeA3gjke.pngدر حین نوشتن این مقاله‌، کشف کردم که Whois از یوزر خودی‌، اطلاعات کامل‌تری نسبت به غریبه‌ها در اختیار می‌گذارد. این است که از Timmy پرس و جو کردم و همان‌طور که می‌بینید هیچ خبری از محل تولد‌اش در دسترس نیست (همان IP منظورم است D:).

خوب حالا می‌توانیم وصل شویم؟ بله‌، این گوی و این میدان. از منوی Server گزینهٔ Join a channel را انتخاب کنید. و یا مثلا به صورت زیر دستورتان را وارد کنید:

/join technotux

و تمام. حالا می‌توانید با هم‌نشینی در میان خدایگان کیفور شوید ;-)

ترفندها:

احتمالا بعد از چند بار استفاده می‌فهمید که می‌توانید کانال‌ها را Bookmark کنید تا در اتصال‌های بعدی به صورت خودکار به آن‌ها متصل شوید. ولی یک مشکل کوچک وجود دارد. این که کلاینت قبل از این که احراض هویت‌تان قطعی شود شما را به کانال‌ها معرفی می‌کند و این کار دست‌تان می‌دهد. ممکن است مثل کانال ‎‎#‎#c که فقط به اعضای freenode اجازهٔ اتصال می‌دهد‌، تایید صلاحیت نشوید و با اردنگی بیرون‌تان کنند!

خوب خوشبختانه IRC در دورانی توسعه یافته که دستورات کاربردی‌، به جای منو‌های خوشگل حکم‌رانی می‌کردند. این یعنی می‌توانید هر رفتار کلاینت را کنترل کنید. اول دستور زیر را بزنید:

/set

مجموعه‌ای از تنظیمات پیش‌فرض کلاینت را می‌بینید. از جمله irc_join_delay...............: 3 را که مد نظر ماست. این آپشن‌، مدت زمان Delay قبل از اتصال به کانال‌های مورد علاقه‌تان را کنترل می‌کند. به طور پیش‌فرض پس از اتصال به IRC سه ثانیه طول می‌کشد که درخواست اتصال به شبکه‌ها ارسال شود. خوب این خیلی کم است. بیایید تغییرش دهیم:

/set irc_join_delay 30

به همین راحتی. حالا ۳۰ ثانیه طول می‌کشد که در خواست‌ها فرستاده شود و در این مدت‌، تمام مراحل احراض هویت مطمئنا به درستی انجام می‌شود ;-)

فراموشی رمز عبور:

اگر احیانا فراموش کردید که رمز عبور‌تان چیست‌، کافیست در همان کانال ‎#freenode در خواست کنید که ایمیل بازیابی برای‌تان فرستاده شود.

این همه لاگ ورود و خروج:

هر کاربری که وارد یا خارج می‌شود به صورت پیش‌فرض پیغامی روی صفحهٔ شما نشان داده می‌شود. در کانال‌های کوچک این مشکلی ایجاد نمی‌کند. ولی در کانال‌های بزرگ با دو سه هزار کاربر‌، خیلی خسته کننده است. می‌توانید این ویژگی را با تیک زدن Hide join and part messagh از منوی Advanced بخش preferences خاموش کنید.

معرفی چند کانال:

این لیست کانال‌های محبوب من است. این‌جا می‌گذارم شاید به درد شما هم خورد:

##c,##slackware,#emacs,#python,#slackbuilds,#technotux,#wikipedia-fa

چهار‌تای اول که معلوم است به درد کجا می‌خورند. پنجمی کانال کاربران slackbuilds.org است. ششمی کانال سایت Technotux خودمان است. آخری هم کاربران ویکی‌پدیای فارسی. این دو تای آخر خیلی نسبت به بقیه خلوت‌ترند و عموما بحثی درشان جریان ندارد. شاید چون اصولا ما ایرانی‌ها چیز‌های دیگری جدای از حوضهٔ تخصصیمان‌، مورد توجه‌مان است. اصلا شاید به همین دلیل است که عمرا باید خواب یک Stream حرفه‌ای فارسی زبان را ببینید که از شکست‌های عشقی یا دیدگاه‌های فیلسوفانهٔ سیاسی خالی باشد!