💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ همایون
سوال در مورد نحوه پیدا کردن IP توسط مرورگر
محسن موحد حل شده توسط محسن موحد

سلام. ممنون میشم به تفکیک پاسخ بدید.

 

1- اول اینکه وقتی آدرس یک سایت رو در آدرس بار مرورگر میزنیم مرورگر این آدرس رو به DNS میفرسته و DNS میاد IP سرو رو پیدا میکنه و برای مرورگر میفرسته و بعد مرورگر درخواست رو برای سرور با اون IP ارسال میکنه یا اینکه خود DNS میاد IP سرور رو پیدا میکنه و درخواست رو ارسال میکنه؟

 

2- دوم اینکه در حالت پیشفرض سرور به پروتکل‌های HTTP و HTTPS با پورت‌های 80 و 443 گوش میکنه. حالا سوال اینجاس وقتی که آدرس Local Host یا آدرس‌های محلی دیگه رو توی مرورگر میزنیم مرورگر آی پی‌های Loop Back مثل 127.0.0.1 یا 192.168.1.1 رو چجوری از IP هایی که مربوط به سرور‌ها یا دیگر کاربران هست رو تشخیص میده؟ و اینکه اگر میشه IP‌های Loop Back رو تغییر داد یا تعریف کرد منبع مرورگر برای تشخیص آدرس‌ها و IP‌های محلی چیه؟ خود مرورگر دفترچه تلفن مثل DNS داره یا اینکه خود Network سیستم عامل دفترچه تلفن داره؟

۱. بصورت کلی عمل DNS Lookup به این شکل انجام میشه:

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

 

بعد از اینکه آیپی سرور پیدا شد، اینجا مرورگر یک Http Request به آیپی مورد نظر ارسال میکنه. 

 

۲. مرورگر به هر آیپی که داده باشید یا از دی ان اس لوکاپ بدست اورده باشه، ریکوئست رو ارسال میکنه و نیازی نیست که آیپی‌های رزرو شده و پرایویت(non-registered یا non-routable) رو بدونه. درخواست ارسال میشه حالا یا کارت شبکه دور خوررده میشه و درخواست به سیستم عامل بک داده میشه یا آدرس پابلیک هست و به خارج از سیستم ارسال میشه. 

آیپی‌های لوپ بک رنج ۱۲۷ هستن ولی خودتون هم میتونید تعریف کنید و از ایپی‌های پرایویت استفاده و روی شبکه ست کنید. 

 

مرورگر dns cache داره، میتونید کش اش رو clear کنید.

 

این مقاله رو هم میتونید مطالعه کنید. 

 

بهترین پاسخ
محسن موحد ۰۸ بهمن ۱۳۹۹، ۰۹:۲۵

در مورد سوال اول: حالا اگه اون سرور مقصد آیپیش رو تغییر بده اونوقت طبق گفته شده IP ممکنه چندین جا کش شده باشه. اونوقت اگه از روی یکی از کش‌ها IP قبلی سرور به مرورگر برگرده و مرورگر نمیتونه اون درخواست رو ارسال کنه و مرورگر در این لحظه چه کاری انجام میده که IP جدید سرور رو بدست بیاره؟ از طرفی کش‌های سطح بالاتر چجوری پاک میشه؟ فرض کنید بغیر از IP اطلاعات دیگه مثلا یک صفحه وب از روی کش سرور ISP ارسال بشه. اونوقت اون سرور اصلی اطلاعات رو بروزرسانی کرده باشه. حالا چجوری باید اطلاعات جدید رو از روی سرور اصلی بگیریم؟ خوب اگه مرورگر خودمون باشه میشه کش رو پاک کرد و اطلاعات دوباره از طرف سرور سایت درخواست میشه. ولی اگر کش ISP باشه اونوقت چی؟ هر دفع که درخواست ارسال میشه اطلاعات کش شده قدیمی فرستاده میشه یا اینکه روشی داره؟

 

در مورد سوال دوم: منظورتون متوجه شدم ولی جواب سوال من نبود. من منظورم اینه که چجوری IP‌های خارجی که مربوط به سرور‌ها هست از IP‌های لوپ بک تشخیص داده میشه؟ شما فرمودین کارت شبکه دور خورده میشه, خوب کارت شبکه از کجا متوجه میشه که IP داخلی هست؟ اگه فرض بگیریم که فقط یک سری IP‌های مشخص داخلی هستند خوب میشه گفت از قبل روی سیستم عامل یا مروگر تعریف شدن ولی دکتر آوند در این جلسه فرمودن که میشه به صورت سفارشی لوپ بک‌های داخلی دلخواه تعریف کرد. سوالم دقیقا اینجاس که مرورگر یا سیستم عامل کاربر از کجا متوجه میشه این IP داخلی هست یا خارجی؟

همایون ۰۹ بهمن ۱۳۹۹، ۰۵:۴۵

کش بعد یه تایمی آپدیت میشه.

حتی میتونید، dns سرور‌های بزرگی مثه گوگل رو در تنظیمات دی ان اس اینترنت ست کنید. 

اینکه یه آیپی سرور تغییر کنه و یه تایمی طول بکشه تا سرورهای دی ان اس هم اپدیت بشن، یه چیز طبیعیه. برای مثال چند سال پیش وقتی یک دامین روی آیپی ست میکردیم، پیام میومد که حداکثر تا ۲۴ ساعت ممکنه طول بکشه تا اون سایت بالا بیاد. علتشم همین موضوع بود ولی الان فک میکنم توو تایم کمتری این اتفاق میوفته  مثلا یکی دو ساعت شاید. البته خودتون میتونید این مسئله رو با فایل hosts سیستم عامل حل کنید و مستقیم خودتون بگید دامنه به چه آیپی اشاره میکنه اما بقیه ی کاربران باید منتظر آپدیت دیتابیس‌ها و کش‌ها بشن. نکته ی دیگه با دستور ipconfig /flushdns روی cmd ویندوز میتونید کش ویندوز رو هم clear کنید.

 

مورد دوم پست قبلی اشاره کردم این آیپی‌ها رزرو شده یا پرایویت هستند. شما میتونید این لینکو ببینید تا آیپی‌های رجیستر شده توسط iana که گلوبال هست رو ببینید. برای مثال در کلاس c فرمت ۱۹۲.۱۶۸.x.x رنج آیپی‌های پرایویت در سیستم‌های داخلی است.

حالا شما میتونید روی ipv۴ تنظیمات اینترنتتون از همین رنج آیپی‌ها ست کنید و یک لوپ بک بسازید. دستتون بازه توو این رنج آیپی هر آیپی که داخل شبکه داخلیتون استفاده نشده استفاده کنید. میتونید داخل تنظیمات چندین آیپی ست کنید. 

میتونید روی گوگل ست کردن آیپی رو سرچ کنید. از قسمت internet protocol version ۴ properties این عملو میتونید انجام بدید و اگر چند آیپی خواستید ست کنید، از قسمت advanced باید استفاده کنید. 

محسن موحد ۰۹ بهمن ۱۳۹۹، ۰۸:۵۵