منبع اصلی نوشتار زیر در این لینک قرار دارد

یک شل اسکریپت ساده برای پیدا کردن IP های آزاد درون LAN

با استفاده از شل اسکریپت زیر، محدوده ای از آأرس ها مانند 192.168.244.1 تا 192.168.244.200 بررسی شده و سپس برای هر آدرس ip درون این محدوده در خروجی چاپ می شود که آیا آدرس استفاده شده است یا نه. اسکریپت بسیار ساده است. ابتدا توسط یک حلقه for آدرس های ip در محدوده شبکه 192.168.244.1 تا 192.168.1.200 را ایجاد و درون فایلی می ریزد، بطوریکه در هر خط آن یک آدرس ip وجود دارد. سپس توسط دستور ping هر خط این فایل خوانده شده و چک می شود که آیا قابل ping شدن است یا نه؟ اگر ping شود پس مقدار متغیر ?$ برابر صفر و پیغام “This IP Address [ $IPADDR ] is USED!!!” و در غیر اینصورت پیام “This IP Address [ $IPADDR ] is not USED!!!” چاپ می شود.متغیر ip (یا بهتر بگم ip$) در حلقه for یک آدرس می شود و در فایل HOME/iplist$ ذخیره می شود. متغیر IPADDR$ وقتی هر خط فایل را می خوانیم بعنوان یک آدرس از هر خط آن فایل خوانده شده و درون این متغیر قرار می گیرد و در خط بعدی توسط دستور ping -c 3 بررسی می شود که آیا این آدرس استفاده شده یا نه؟ در اولین خطوط هم بررسی می شود که آیا UID کاربر صفر است یا نه؟ یعنی بررسی می شود که آیا کاربر مورد نظر root است یا خیر، که اگر root نباشد پیام نشان داده شده و با دستور exit 1 اجرای اسکریپت خاتمه می یابد. در دومین خط دستور زیر وجود دارد، دستور trap عکس العملی را برای سگنال های ارسال شده انجام می دهد. بطور مثال خط زیر درون اسکریپت وقتی سیگنال 0 یا سگنتال 1 و یا سیگنال 2 که همان Ctrl+C است و یا سگنال 3 و سیگنال 15 به سکریپت آمد بصورت نرمال خارج می شود. یعنی عکس العملی که روی سگنال ها گفته شده انجام می دهد، خروج نرمال از اجرای اسکریپت و بازگشت به os با استفاده از دستور exit می باشد.

trap “exit” 0 1 2 3 15

برای اجرا نخست فایل را دانلود کنید. فایلی دانلوی با پسوند txt است، بهتر است آنرا درون دایرکتوری usr/local/bin/ کپی کرده و سپس با دستور زیر آنرا از نام testip به نام testip تغییر دهید. مجور لازم را برای اجرا شدن اهدا به اسکریپت با دومین خط زیر بدهید. تنها کافیست که نام اسکریپت را در خط فرمان نوشته و Enter کنید.

mv testip.txt testip

chmod 755 testip

نکته هم اینکه شما باید با توجه به LAN خود اسکریپت را تغییر دهید. بطور مثال در شکل بالا محدوده آدرس شبکه 192.168.244.0/24 است که شما بطور مثال می توانید در حلقه for آنرا به 192.168.1 تغییر دهید که به صورت زیر خواهد شد.

و می توایند محدوده درون حلقه for ( که در آکولاد ها آمده اند) را از 1 تا 254 قرار دهید. یعنی

{254..1}



برچسب ها : , , , , , , , ,