- خلاصه درس: در این درس یاد میگیریم که با پورتها تعامل داشته باشیم و یاد میگیریم که با پورتهای ۱۳ و ۸ و ۸۰ به کمک telnet و nc صحبت کنیم.
◊ شروع کار با پورتها
الان به جایی رسیدهایم که میتوانیم بحث پورتها را شروع کنیم. اولین نکتهای که باید بگم این است که ابزاری که به کمک آن با پورتها صحبت میکنیم در همه پورتها یکی است ولی هر پورتی زبان مخصوص خود دارد (درست مثل زبانهای مختلف در جهان که همشون از طریق زبان و دهان ادا میشن ولی هر کدام روش خاصی برای ارتباط برقرار کردن دارند). پس ما برای کار با پورتها باید زبان هرکدام را یاد بگیریم.
بحث بعدی این است که وقتی میگیم یه پورت بازه باید توجه کنید که برنامهای روی آن کامپیوتر نصب شده و اون پورت را باز کرده است (پورتها خود به خود باز نمیشوند). یک سری پورتها توسط خود سیستمعامل باز میشوند (یعنی به محض نصب سیستمعامل که خودش هم درواقع یه نرمافزاره) و نیازی نیست که برنامه دیگری برایش نصب کنیم. در مقابل، بعضی پورتهای دیگر توسط برنامههای جانبی باز میشوند.
به عنوان مثال وقتی میگم که پورت ۲۵ روی یک ip باز است، این معنی را دارد که برنامهای روی اون کامپیوتر خاص وجود دارد که پورت ۲۵ را باز کرده و من وقتی از طریق کامپیوتر خودم با آن پورت کار میکنم در واقع دارم با آن برنامه خاص (که اون پورت را باز کرده) صحبت میکنم.
حالا یه سوال پیش میآد که چرا اصلا یه نرمافزار باید پورت باز کنه و اینکه کدام نرمافزارها باید پورت باز کنند؟
جواب این است که هر برنامهای که بخواهد از طریق شبکه (یعنی از راه دور اصطلاحا remote) قابل دسترس باشه باید یه پورت باز کنه. پس یک برنامهای که نیازی به برقراری ارتباط شبکهای ندارد (مثلا یه نرمافزار گرافیکی) نباید و نشاید که پورت باز کند.
باید ببینیم که از طریق چه برنامهای میتوان با پورتها صحبت کرد ( البته با هرکدام به روش خودشان )؟
برای اینکار از دو نرمافزار به نامهای telnet و nc استفاده میکنیم. telnet که در خود سیستمعامل وجود دارد و nc را هم که جلسه قبل داونلود کردیم.
حالا چگونه از این دو نرمافزارها میتوان استفاده کنیم؟
۱- استفاده از telnet :
اگر بخواهیم با ip ای به شماره 194.225.184.13 از طریق پورت 25 صحبت کنیم باید بنویسیم:
telnet 194.225.184.13 25
و بعد اینکه ارتباط برقرار شد باید شروع کنیم و از طریق زبان پورت ۲۵ با آن صحبت کنیم.
۲- استفاده از nc :
اگر بخواهیم همان کار را با netcat انجام دهیم، باید بنویسیم:
nc -v 194.225.184.13 25
و بعد از برقراری ارتباط شروع به صحبت کنیم.
◊ با پورت ۱۳ صحبت کنیم
نام دیگر اون daytime است و کارش هم اینه که زمان و تاریخ رو در اون کامپیوتر به ما میده. این پورت اصولا خیلی سر راسته. فقط کافیه که بهش وصل شیم تا اطلاعاتشون بیرون بریزه. البته این پورت رو خیلی از کامپیوترها بسته است. (یادتون باشه که وقتی میتوان با یه پورت کار کرد که باز باشد).
حالا میخوایم با پورت ۱۳ از ip شماره 194.225.184.13 صحبت کنم. یکی از این دو دستور را مینویسم:
telnet 194.225.184.13 13
nc -v 194.225.184.13 13
البته در آن دستورات به جای عدد ۱۳ میتوان معادلش را نوشت که daytime است.
و جواب میشنوم:
11:35:33 AM 10/5/2002
بله، با این پورت ارتباط برقرار کردیم و اطلاعاتش رو دریافت کردیم. این اطلاعات معمولا به درد این میخورد که مکان جغرافیایی اون کامپیوتر را حدس بزنیم (البته اگر زمان اون کامپیوتر صحیح باشد). به عنوان مثال این کامپیوتر خاص در ایران است چون ساعتش همزمان با ایران است.
◊ با پورت ۷ صحبت کنیم
اسم این پورت echo است. من این پورت رو پورت میمون میگم چون هرچی که شما براش بنویسید را تقلید میکنه و همانها را براتون پس میفرستد. مثلا من به پورت ۷ کامپیوتری با ip شماره 194.225.184.13 تلنت یا nc میکنم.
telnet 194.225.184.13 7
nc -v 194.225.184.13 7
بعد از برقراری ارتباط، هر چی من بنویسم، اون برام پس میفرسته. مثلا اگه تایپ کنم Ali1000 و Enter بزنیم، جواب میشنوم، Ali1000 ... خودتون امتحان کنید تا ببینید. برای تمام شدن کار باید دکمه Ctrl+C را فشار دهیم تا این میمون بازی تموم بشه.
پس کار کردن با این پورت هم زیاد سخت نیست.
◊ با پورت ۸۰ صحبت کنیم
پورت ۸۰ یکی از مهمترین پورتهاست. دنیای وب (صفحات اینترنتی) بر اساس همین پورت کار میکنه. توضیح اینکه وقتی به یه سایت وصل میشیم و صفحه وب را درخواست میکنیم، در واقع مرورگر اینترنتی به پورت ۸۰ اون کامپیوتر وصل میشه و اطلاعات رو میگیره (البته بعد از گرفتن اطلاعات اون رو تفسیر میکنه و به صورت یه صفحه نشون میده - دقت کنید که اطلاعات در واقع به صورت یک سری تگ HTML است ). حالا ما میخواهیم با پورت ۸۰ یک کامپیوتر صحبت کنیم ولی به کمک telnet و nc.
اول باید یه connection (اتصال) با پورت ۸۰ برقرار کنیم (مثلا برای سایت hotmail.com باید بنویسم):
telnet www.hotmail.com 80
nc -v www.hotmail.com 80
پس اول باید یکی از دستورات بالا را استفاده کنیم. من همیشه توصیهام استفاده از nc بوده و خواهد بود.
حالا باید شروع به صحبت با پورت ۸۰ کنیم. من فعلا دو تا جمله براتون میگم و بقیهاش بمونه واسه بعد. دقت کنید که موقع کار با پورت ۸۰ با تلنت (نه nc) دستوراتی که ما مینویسیم، نمایش داده نمیشود ولی کار میکنه.
۱- اولین جمله اینه: GET / HTTP/1.0 و بعدش دوتا Enter
به فاصلهها دقت کنید. دو طرف / ی که بعد از GET است، فاصله وجود دارد. این جمله به پورت ۸۰ میگه که هرچی در header داره، نشون بده. و جواب میشنوم:
HTTP/1.0 302 Moved Temporarily
Server: Microsoft-IIS/5.0
Date: Thu, 05 Dec 2002 12:02:51 GMT
Location: http://lc2.law5.hotmail.passport.com/cgi-bin/login
X-Cache: MISS from cache5.neda.net.ir
Connection: close
۲- دومین جمله اینه: GET / what/ever و بعدش دوتا Enter
به فاصلهها دقت کنید. این دستور باعث میشه که هر چی داره، رو کنه.
البته توجه کنید که ما مسیر را مشخص نکردیم. بعدها در مورد این مسیر مشخص کردن صحبت خواهم کرد. این حالت که بدون مسیر است خیلی وقتها کار نمیکنه (مثل همین مثال !!)
گاهی پیش میآد که یک سری دستورات خاص را همیشه باید پشت سرهم به یه پورت خاص بفرستیم و بخواهیم در وقت صرفهجویی کنیم. مثلا همین جمله GET / HTTP/1.0 و دو Enter پشت سرهم که همیشه استفاده میکنیم. در این موارد میتوان این دستورات را در یک فایل تایپ کرد (همراه با Enter ها که باید موقع نوشتن حتما بزنید) و بعد مثلا با نام ali.txt ذخیره کنید و بعد یکی از دستورات زیر را بنویسیم:
nc -v www.far30.com 80 < ali.txt
type ali.txt | nc -v www.far30.com 80
که همان کارهای بالایی را انجام میده.
◊ شروع کار با پورتها
الان به جایی رسیدهایم که میتوانیم بحث پورتها را شروع کنیم. اولین نکتهای که باید بگم این است که ابزاری که به کمک آن با پورتها صحبت میکنیم در همه پورتها یکی است ولی هر پورتی زبان مخصوص خود دارد (درست مثل زبانهای مختلف در جهان که همشون از طریق زبان و دهان ادا میشن ولی هر کدام روش خاصی برای ارتباط برقرار کردن دارند). پس ما برای کار با پورتها باید زبان هرکدام را یاد بگیریم.
بحث بعدی این است که وقتی میگیم یه پورت بازه باید توجه کنید که برنامهای روی آن کامپیوتر نصب شده و اون پورت را باز کرده است (پورتها خود به خود باز نمیشوند). یک سری پورتها توسط خود سیستمعامل باز میشوند (یعنی به محض نصب سیستمعامل که خودش هم درواقع یه نرمافزاره) و نیازی نیست که برنامه دیگری برایش نصب کنیم. در مقابل، بعضی پورتهای دیگر توسط برنامههای جانبی باز میشوند.
به عنوان مثال وقتی میگم که پورت ۲۵ روی یک ip باز است، این معنی را دارد که برنامهای روی اون کامپیوتر خاص وجود دارد که پورت ۲۵ را باز کرده و من وقتی از طریق کامپیوتر خودم با آن پورت کار میکنم در واقع دارم با آن برنامه خاص (که اون پورت را باز کرده) صحبت میکنم.
حالا یه سوال پیش میآد که چرا اصلا یه نرمافزار باید پورت باز کنه و اینکه کدام نرمافزارها باید پورت باز کنند؟
جواب این است که هر برنامهای که بخواهد از طریق شبکه (یعنی از راه دور اصطلاحا remote) قابل دسترس باشه باید یه پورت باز کنه. پس یک برنامهای که نیازی به برقراری ارتباط شبکهای ندارد (مثلا یه نرمافزار گرافیکی) نباید و نشاید که پورت باز کند.
باید ببینیم که از طریق چه برنامهای میتوان با پورتها صحبت کرد ( البته با هرکدام به روش خودشان )؟
برای اینکار از دو نرمافزار به نامهای telnet و nc استفاده میکنیم. telnet که در خود سیستمعامل وجود دارد و nc را هم که جلسه قبل داونلود کردیم.
حالا چگونه از این دو نرمافزارها میتوان استفاده کنیم؟
۱- استفاده از telnet :
اگر بخواهیم با ip ای به شماره 194.225.184.13 از طریق پورت 25 صحبت کنیم باید بنویسیم:
telnet 194.225.184.13 25
و بعد اینکه ارتباط برقرار شد باید شروع کنیم و از طریق زبان پورت ۲۵ با آن صحبت کنیم.
۲- استفاده از nc :
اگر بخواهیم همان کار را با netcat انجام دهیم، باید بنویسیم:
nc -v 194.225.184.13 25
و بعد از برقراری ارتباط شروع به صحبت کنیم.
◊ با پورت ۱۳ صحبت کنیم
نام دیگر اون daytime است و کارش هم اینه که زمان و تاریخ رو در اون کامپیوتر به ما میده. این پورت اصولا خیلی سر راسته. فقط کافیه که بهش وصل شیم تا اطلاعاتشون بیرون بریزه. البته این پورت رو خیلی از کامپیوترها بسته است. (یادتون باشه که وقتی میتوان با یه پورت کار کرد که باز باشد).
حالا میخوایم با پورت ۱۳ از ip شماره 194.225.184.13 صحبت کنم. یکی از این دو دستور را مینویسم:
telnet 194.225.184.13 13
nc -v 194.225.184.13 13
البته در آن دستورات به جای عدد ۱۳ میتوان معادلش را نوشت که daytime است.
و جواب میشنوم:
11:35:33 AM 10/5/2002
بله، با این پورت ارتباط برقرار کردیم و اطلاعاتش رو دریافت کردیم. این اطلاعات معمولا به درد این میخورد که مکان جغرافیایی اون کامپیوتر را حدس بزنیم (البته اگر زمان اون کامپیوتر صحیح باشد). به عنوان مثال این کامپیوتر خاص در ایران است چون ساعتش همزمان با ایران است.
◊ با پورت ۷ صحبت کنیم
اسم این پورت echo است. من این پورت رو پورت میمون میگم چون هرچی که شما براش بنویسید را تقلید میکنه و همانها را براتون پس میفرستد. مثلا من به پورت ۷ کامپیوتری با ip شماره 194.225.184.13 تلنت یا nc میکنم.
telnet 194.225.184.13 7
nc -v 194.225.184.13 7
بعد از برقراری ارتباط، هر چی من بنویسم، اون برام پس میفرسته. مثلا اگه تایپ کنم Ali1000 و Enter بزنیم، جواب میشنوم، Ali1000 ... خودتون امتحان کنید تا ببینید. برای تمام شدن کار باید دکمه Ctrl+C را فشار دهیم تا این میمون بازی تموم بشه.
پس کار کردن با این پورت هم زیاد سخت نیست.
◊ با پورت ۸۰ صحبت کنیم
پورت ۸۰ یکی از مهمترین پورتهاست. دنیای وب (صفحات اینترنتی) بر اساس همین پورت کار میکنه. توضیح اینکه وقتی به یه سایت وصل میشیم و صفحه وب را درخواست میکنیم، در واقع مرورگر اینترنتی به پورت ۸۰ اون کامپیوتر وصل میشه و اطلاعات رو میگیره (البته بعد از گرفتن اطلاعات اون رو تفسیر میکنه و به صورت یه صفحه نشون میده - دقت کنید که اطلاعات در واقع به صورت یک سری تگ HTML است ). حالا ما میخواهیم با پورت ۸۰ یک کامپیوتر صحبت کنیم ولی به کمک telnet و nc.
اول باید یه connection (اتصال) با پورت ۸۰ برقرار کنیم (مثلا برای سایت hotmail.com باید بنویسم):
telnet www.hotmail.com 80
nc -v www.hotmail.com 80
پس اول باید یکی از دستورات بالا را استفاده کنیم. من همیشه توصیهام استفاده از nc بوده و خواهد بود.
حالا باید شروع به صحبت با پورت ۸۰ کنیم. من فعلا دو تا جمله براتون میگم و بقیهاش بمونه واسه بعد. دقت کنید که موقع کار با پورت ۸۰ با تلنت (نه nc) دستوراتی که ما مینویسیم، نمایش داده نمیشود ولی کار میکنه.
۱- اولین جمله اینه: GET / HTTP/1.0 و بعدش دوتا Enter
به فاصلهها دقت کنید. دو طرف / ی که بعد از GET است، فاصله وجود دارد. این جمله به پورت ۸۰ میگه که هرچی در header داره، نشون بده. و جواب میشنوم:
HTTP/1.0 302 Moved Temporarily
Server: Microsoft-IIS/5.0
Date: Thu, 05 Dec 2002 12:02:51 GMT
Location: http://lc2.law5.hotmail.passport.com/cgi-bin/login
X-Cache: MISS from cache5.neda.net.ir
Connection: close
۲- دومین جمله اینه: GET / what/ever و بعدش دوتا Enter
به فاصلهها دقت کنید. این دستور باعث میشه که هر چی داره، رو کنه.
البته توجه کنید که ما مسیر را مشخص نکردیم. بعدها در مورد این مسیر مشخص کردن صحبت خواهم کرد. این حالت که بدون مسیر است خیلی وقتها کار نمیکنه (مثل همین مثال !!)
گاهی پیش میآد که یک سری دستورات خاص را همیشه باید پشت سرهم به یه پورت خاص بفرستیم و بخواهیم در وقت صرفهجویی کنیم. مثلا همین جمله GET / HTTP/1.0 و دو Enter پشت سرهم که همیشه استفاده میکنیم. در این موارد میتوان این دستورات را در یک فایل تایپ کرد (همراه با Enter ها که باید موقع نوشتن حتما بزنید) و بعد مثلا با نام ali.txt ذخیره کنید و بعد یکی از دستورات زیر را بنویسیم:
nc -v www.far30.com 80 < ali.txt
type ali.txt | nc -v www.far30.com 80
که همان کارهای بالایی را انجام میده.
کوچیک ::: چهارشنبه 86/7/18::: ساعت 3:0 صبح
نظرات دیگران: نظر
لیست کل یادداشت های این وبلاگ
>> بازدیدهای وبلاگ <<
بازدید امروز: 8
بازدید دیروز: 1
کل بازدید :31833
بازدید دیروز: 1
کل بازدید :31833
>>اوقات شرعی <<
>> درباره خودم <<
>>لوگوی وبلاگ من<<
>>آرشیو شده ها<<
>>جستجو در وبلاگ<<
جستجو:
>>اشتراک در خبرنامه<<
>>تبلیغات<<