تشخیص آدرس آی پی عمومی و خصوصی در سیستم عامل لینوکس
در طول فعالیت حرفه ای شما به عنوان یک متخصص لینوکس بسیار پیش می آید که نیاز داشته باشید آدرس فعلی IP یک سیستم عامل لینوکس را تشخیص دهید. می دانیم که آدرس های آی پی ورژن ۴ به دو دسته تقسیم می شوند. برخی از آدرس های IP در محیط اینترنت قابل Route می باشند و مسیرهای آن ها در تمام روترهای جهانی که در شبکه اینترنت مسیریابی را انجام می دهند ثبت شده است. به این دسته آی پی های Public یا عمومی گفته می شود. برخی دیگر از آدرس های IP در اینترنت قابل مسیریابی نیستند و به اصطلاح گفته می شود که مسیر Route آن ها در اینترنت تعریف نشده است. به این دسته IP خصوصی یا Private گفته می شود. در این صورت آدرس های آی پی عمومی تنها زمانی معنا پیدا می کنند که بر روی یک دستگاه متصل به اینترنت پیکربندی شده باشند. در راهنمای پیش رو ، ابتدا نحوه تشخیص آی پی خصوصی و سپس نحوه تشخیص IP پابلیک اختصاص یافته به دستگاه شما را در سیستم عامل لینوکس توضیح خواهیم داد.
نمایش آی پی های خصوصی در سیستم عامل لینوکس
برای تشخیص آدرس آی پی خصوصی در سیستم عامل لینوکس ، سه دستور در محیط خط فرمان وجود دارد. این دستورها شامل hostname ، ifconfig و دستور ip می شوند.
جهت یافتن آدرس آی پی با استفاده از دستور hostname کافی ست که از ویژگی –I استفاده کنید. برای مثال در تصویر زیر IP دستگاه برابر با ۱۹۲.۱۶۸.۱۲۲.۲۳۶ است.
راه حل دوم بهره مندی از دستور ifconfig است. این دستور دارای سوئیچ های زیادی می باشد که هرکدام وظیفه متفاوتی را بر عهده دارند. اما در اینجا نیازی به استفاده از هیچ کدام از سوئیچ های ifconfig ندارید. Ifconfig را بدون هیچ سوئیچی تایپ کنید و با فشردن کلید Enter آدرس آی پی تمام اینترفیس ها از جمله اینترفیس Loopback نمایش داده خواهد شد. به تصویر زیر که خروجی این دستور در یک سیستم عامل لینوکس را نشان می دهد توجه کنید :
سومین دستوری که امکان استفاده از آن وجود دارد دستور ip در حالت addr show است. در واقع آن را به این ترتیب می نویسیم : ip addr show
به تصویر زیر دقت کنید :
همان طور که در تصویر مشاهده می شود ، این دستور نیز آدرس تمام اینترفیس ها و از جمله لوپ بک را مشخص می کند. اینترفیس Loopback در لینوکس با نام lo نمایش داده می شود. اما اگر بخواهیم اینترفیس مورد نظرمان را نیز مشخص نماییم ، می توانیم نام آن را مانند زیر در ادامه دستور تعیین کنیم. برای مثال در این تصویر ما می خواهیم فقط آدرس آی پی اینترفیس eth0 به ما نمایش داده شود ، بنابراین خروجی دستور ip addr show eth0 به شرح زیر خواهد بود :
نمایش آی پی پابلیک در سیستم عامل لینوکس
تا اینجا نحوه نمایش IP تعلق یافته به سیستم عامل را فرا گرفتیم. اما اگر بخواهیم آدرس آی پی عمومی که در اینترنت به ما تعلق گرفته است را مشاهده نماییم چطور؟ راه حل این موضوع در محیط خط فرمان استفاده از ویژگی cURL است. cURL امکانی را فراهم می نماید که بتوانید بدون نیاز به استفاده از Web Application ها از API های عمومی موجود در محیط اینترنت بهره ببرید. حتی اگر کاربر ویندوز هستید ، مقاله بسیار جالبی درباره نحوه استفاده از cURL در ویندوز نیز وجود دارد که در این لینک قابل مطالعه است.
اکنون ببینیم که در این جا cURL چه کمکی به ما خواهد کرد؟ قضیه بسیار ساده است. همه کاری که باید انجام دهیم این است که در محیط خط فرمان ، با استفاده از دستور cURL یک درخواست HTTP به یکی از وب سایت های زیر ارسال کنیم. این وب سایت ها نیز آدرس آی پی پابلیک ما را در پاسخ برای ما ارسال خواهند کرد. به لیست وب سایت ها توجه کنید :
http://ifconfig.me
http://www.icanhazip.com
http://ipecho.net/plain
http://indent.me
http://bot.whatismyipaddress.com
چگونه به این وب سایت ها درخواست HTTP ارسال نماییم ؟ دستور cURL را می نویسیم و بعد از آن دامنه یکی از این سایت ها را در ادامه وارد می کنیم. به خروجی دستورات زیر دقت نمایید :
در پایان لازم به ذکر است که به جای دستور cURL می توانید از wget نیز استفاده کنید. البته دقت داشته باشید که به وسیله –q حالت Quiet Mode و با استفاده از –O- خروجی را به Standard Output یا همان STDOUT هدایت کنید. تصویر زیر را ببینید :