سلام، امیدوارم که حالتون خوب باشه . امروز در این نوشته از سری نوشته های در پرانتز قصد داریم که با پایتون ip عمومی سیستم خودمون بدست بیاریم.
برای این که بیشتر با این مبحث اشنا بشیم ، تصور کنید که شما با استفاده از یک مودم adsl به اینترنت متصل هستید.خب به دلیل محدود بودن تعداد ip های ورژن ۴ امکان این که به هر دستگاه یه ip اختصاصی ، داده بشه وجود نداره. پس ما مجبوریم از ip local استفاده کنیم.پس زمانی که مودم شما به سرویس دهنده اینترنتتون متصل میشه ISP شما یک IP public به مودم شما میده. و مودم شما داخل شبکه داخلی خودش که دستگاه های مختلفی به اون متصل هست(اسمارت فون ها، کامپیوتر و لپ تاپ و حتی این روز ها تلوزیون و یخچال و...) یک IP محلی اختصاص میده.
این IP ها غالبا به شکل "192.168.1x" هستند که x شماره ای هست که به دستگاه شما داده میشه.مثلا 192.168.1.1 ادرس مودم شماست و اگر این ادرس داخل مرور گر خودتون جستجو کنید وارد تنظیمات مودم می شوید.
برای این که IP محلی دستگاه خودتون داخل لینوکس پیدا کنید میتونید از دستور زیر استفاده کنید:
یا که از دستورifconfig استفاده کنید.
و در ویندوز در CMD از دستور ipconfig استفاده کنید:
زمانی که شما درخواستی رو به یک سرور داخل اینترنت ارسال میکنید. شما با استفاده از IP محلی خودتون روی یک پورت خاص به مودم وصل میشید و درخواستتون به مودم میفرستید. و مودم پیام شما رو با IP خودش که اغلب یک IP عمومی هست به سرور سمت اینترنت ارسال میکنه , و سرور هم پاسخ رو به مودم شما برمیگردونه و مودم هم به شما جواب میده.
به این فرایند NAT گفته میشه؛" Network Address Translation" بعضی وقتا هم ممکنه که شما داخل nat سرویس دهنده خودتون قرار داشته باشید.پس ISP به شما یک IP محلی میده و مودم شما هم از اینترنت قابل دیدن نیست.
خب اگه ما نیاز داشته باشیم که IP عمومی که ما داخل اینترنت با اون دیده میشیم به دست بیاریم . لازم داریم که از یک شخص ثالث کمک بگیریم.به این شکل که ما به اون یک درخواست میدیم و اون به ما میگه که ما از چه IP استفاده میکنیم. برای مثال میتونید what is my ipتوی گوگل جستجو کنید.
خب apiهای رایگان زیادی هستند. که این کار برای ما انجام میدن یکی از اونها apify.org هست.
بریم سراغ کد نویسی:
به همین سادگی :).
امید وارم این اموزش برای شما مفید بوده باشه.