امروز داشتم یک ویدیو آموزشی نگاه میکردم و یه بخشی مرتبط با DNS بود. همینطور که استاد عزیز از دانشجو ها سوال میپرسید، من سعی میکردم که تو ذهنم جواب بدم. بالافاصله متوجه شدم که از جوابام ۸۰ درصد یا ۷۰ درصد مطمعنم. مثلا ساده ترین نمونه اش:

بعد با خودم گفتم که اینجوری اصلا جالب نیست، مثلا من میخوام هانتر بشم باید حدالاقل سوال به این سادگی رو بتونم با قاطعیت جواب بدم.

مشکل اینجاس که اگه شما از بک گراند برنامه نویسی داری میای احتمالا خیلی چیزارو به صورت تجربی بلدی، مثلا به صورت abstract میدونی DNS چیه و چطور کار میکنه، قبلا باهاش سرو کله زدی، ولی هیچوقت ارزششو نداشته که بری بشینی و دقیق بشی ببینی این چطور داره کار میکنه، ولی خب این توهم رو داری که آره من بلدم. ( من در مورد HTTP هم همین بودم، که بحثش جداست )

خلاصه کلام اینه که امشب نشستم و سعی کردم در سریع ترین زمان ممکن چند تا knowledge gap هامو پر بکنم و اینجا داکیومنتش کنم، شاید به کار تو هم اومد.

وقتی dig میزنم دقیقا چه اتفاقی میفته؟!

من همیشه تصور میکردم که dig با getaddrinfo کارو در میاره. اگه تو هم همچین فکری میکردی، بهت تبریک میگم! تو یک نوب هستی. 🎉

چیشد که اینو فهمیدم؟ من یه سرور لوکال همینجور ران داشتم که که resolve میشه به یه دامین لوکال به اسم http://iis.lab. این فایل etc/hosts منه:

Screenshot 2026-06-26 at 4.17.08 AM.png

بعد هرکار میکردم dig اینو گردن نمیگرفت و میگفت که این NXDOMAIN عه. از من اصرار، از dig انکار:

Screenshot 2026-06-26 at 4.15.58 AM.png

حالا همینو curl میزدم عین آدم کار میکرد:

Screenshot 2026-06-26 at 4.17.39 AM.png

رفتم بالاسر گراک و اونم خیلی مصمم میگفت نه حاجی همه چی درسته و باید از etc/hosts بخونه:

Screenshot 2026-06-26 at 3.56.39 AM.png

بعد ده پونزده دقیقه دیباگ و استیصال، برگشتم و فهمیدم که گراکم نوبه:

Screenshot 2026-06-26 at 3.44.07 AM.png