در تیم زیرساخت دیجیکالا، میکروسرویسهای مختلفی در حال پدید آمدن هستند. برخی از این میکروسرویسها قرار است تنها برای کاربران برخی از کشورها در دسترس باشند. سالار که وظیفهی مدیریت درخواستهای ورودی از کشورهای مختلف را برعهده دارد، لیستی از بازههای آیپیهای کشورهای مدنظرش جمعآوری کرده است. او اکنون از شما میخواهد اسکریپتی برای او بنویسید که با استفاده از آن بتوان درخواستهای ورودی از کشورهای مختلف را مسدود یا آزاد کرد.
پروژهی اولیه را از این لینک دانلود کنید.
ساختار فایلهای پروژه بهصورت زیر است:
اسکریپت country_manager.sh
را مطابق توضیحات زیر پیادهسازی کنید:
./country_manager.sh command ip_list_filepath
است. مثال:command
و یکی برای ip_list_filepath
) بود، اسکریپت باید عبارت not enough arguments
را چاپ کند و متوقف شود.command
برابر با block
یا unblock
نبود، اسکریپت باید عبارت invalid command
را چاپ کند و متوقف شود.ip list file not found
را چاپ کند و متوقف شود.command
برابر با block
باشد، اسکریپت باید لیست بازههای آیپی موجود در فایل را دریافت کند و درخواستهای ورودی مربوط به این آیپیها را بهازای همهی پروتکلها و پورتها DROP
کند. اگر rule مربوط به ACCEPT
کردن این درخواستها از قبل موجود بود، اسکریپت باید آنها را حذف کند.command
برابر با unblock
باشد، اسکریپت باید لیست بازههای آیپی موجود در فایل را دریافت کند و درخواستهای ورودی مربوط به این آیپیها را بهازای همهی پروتکلها و پورتها ACCEPT
کند. اگر rule مربوط به DROP
کردن این درخواستها از قبل موجود بود، اسکریپت باید آنها را حذف کند.iptables
انجام شود.پس از پیادهسازی موارد خواستهشده، فایل country_manager.sh
را آپلود کنید.