آموزش ساخت IP Scanner با Batch Script
تا به امروز ابزار های زیادی جهت بررسی IP های درون یک شبکه درست شده است که حقیقتا بعضی از آنها مثل Advanced IP Scanner بسیار کاربردی و مفید میباشند. اما امروز میخواهیم خودمان یک IP Scanner بسازیم که از سرعت بالایی در بررسی IP های درون یک شبکه برخوردار باشد و تا حدی نیاز مان را نسبت به برنامه های Third Party ویندوز برطرف سازد.
نیازمندی های ساخت IP Scanner با Batch Script
آنچه که در این آموزش مورد نیاز ما میباشد وجود دستور Ping در ویندوز است که ما میخواهیم با استفاده از این دستور از وجود IP های زنده در شبکه خود با خبر شویم.
برای شروع ابتدا باید با استفاده از دستورات echo و title و color و mode و setlocal بخش اصلی برنامه IP Scanner خود را بسازیم تا کاربران مان با یک محیط جذاب روبرو شوند 🙂 . برای مثال:
@echo off title TMLMANAGER IP SCANNER color 0f mode con cols=100 lines=25 setlocal enabledelayedexpansion echo ____________________________________________________________________________________________________ echo. echo Welcome to The TMLMANAGER IP Scanner echo. echo ____________________________________________________________________________________________________ echo.
استفاده از دستور Set و ساخت متغیر
با استفاده از دستورات بالا فقط ظاهر برنامه IP Scanner ساخته شده است. حال باید با استفاده از دستور Set از کاربر درخواست IP بکنیم و آن IP را در یک متغیر ذخیره کنیم. برای مثلا:
set /p IPRANGE=Please enter your IP Address here:
استفاده از دستور For و ساخت حلقه
پس از دریافت آدرس آی پی از کاربر باید آدرس را با استفاده از دستور for به چهار متغیر مختلف تقسیم کنیم و اکتت آخر آنرا حذف کنیم تا بتوانیم یک Range از آدرسهای آی پی را با آن بررسی کنیم. برای مثال:
for /f "usebackq tokens=1-4 delims=." %%a in ('!IPRANGE!') do ( set IPADDRESS=%%a.%%b.%%c )
استفاده از دستور for و if برای چرخش و شرطی سازی
حال باید یک دستور for به همراه پارامتر /l برای شمارش عدد 1 تا 254 درست کنیم و این دستور for را در دستور for قبلی قرار دهیم تا رنج آدرسهای مشخص شده ما یکی یکی با دستور ping بررسی شوند و پس از آن با استفاده از دستور if صحت عملکرد دستور ping را بررسی کنیم و در نهایت شرطی مشخص کنیم که اگر ما به درستی به آدرس آپی دسترسی داشتیم آن آدرس را در یک فایل متنی برای مان ذخیره کند. برای مثال:
for /f "usebackq tokens=1-4 delims=." %%a in ('!IPRANGE!') do ( set IPADDRESS=%%a.%%b.%%c for /l %%g in (1,1,254) do ( ping -n 2 -w 1 !IPADDRESS!.%%g >nul if !errorlevel! equ 0 ( echo Founded IP Address: !IPADDRESS!.%%g >>FoundedIPAddress.txt ) ) )
خب تا اینجا به همین سادگی برنامه IP Scanner ما ساخته شد اما این برنامه ای که درست کردیم سر شار از مشکلات میباشد که باید آنها را برطرف سازیم. مثلا یکی از این مشکلات این است که ما مشخص نکردیم که اگر غیر از IP چیز دیگری وارد شد آن مقدار از کاربر پذیرفته نشود و … پس باقی کار رو به خودتون می سپارم 🙂
برای دریافت فایل آماده برنامه باید در سایت عضو شوید تا بتوانید فایل را مشاهده و دانلود کنید.
اگر سوال و یا انتقادی نسبت به آموزش ساخت IP Scanner با Batch Script دارید نووا بلاگ را از محبت خود محروم نکنید.
سلام در فرم ورود وقتی نام کاربری صحیح وارد شود و رمزعبور اشتباه به پیغام (خطا: رمزعبوری که برای نام کاربری iman-pakrouh وارد کردهاید، صحیح نیست. رمزتان را گم کردهاید؟)
بر میخوریم که این پیغام از لحاظ امنیتی کاملا مشکل داره و شما میتوانید با اضافه کردن تکه کد
function failed_login () {
return ‘the login information you have entered is incorrect.’;
}
add_filter ( ‘login_errors’, ‘failed_login’ );
به فایل functions.php جلوگیری کنید.
سلام ایمان جان
ممنون از محبت تون، بله کاملا درسته، نباید نام کاربری رو فاش کنه 🙂
ولی در کل سایت نووا بلاگ یک بلاگ عادی و اطلاعات کاربری خاصی در سایت ثبت نمیشه ولی بازهم امنیت اطلاعات مربوط به کاربر ها حرف اول رو میزنه و من از شما بابت کدی که ارسال کردید واقعا ممنونم.
موفق و سربلند باشید.
فدات عزیز☺
من یه سوال دارم اونم اینه که مثلا من 1 فایل bat میسازم و کدامو هم مینویسم.
برای اینکه کدم تمیز باشه میخوام این 1 فایل رو تبدیل به 3 فایل کنم.
و میخوام یک فایل چهارمی وجود داشته باشه که هر 3 این فایل هارو درون اون فایل صدا بزنم.
و سوالم اینه که باید با چه دستوری این فایل هارو صدا بزنم؟
سلام ایمان جان
شما میتونید هم از دستور call استفاده کنید هم از دستور start
دستور start یک پنجره جدا باز میکنه اما دستور call در همون پنجره فعلی برنامه رو اجرا میکنه
سلام
1. من یه batch می خوام بسازم و بعد به منوی کلیک راست اضافش کنم، که اسمِ فایلی رو که روش کلیک راست کردم برام کپی کنه. طوری باشه که اگه روی یه shortcut هم کلیک راست کردم، نامِ خودِ shortcut رو برام کپی کنه نه نامِ target رو. مثلا اگه از فایل cmd.exe یه شورتکات به نام test.lnk دارم فقط برام test رو کپی کنه.
2. یه batch دیگه هم می خوام که دقیقا مثله copy as path خود ویندوز عمل کنه ( مال ویندوز باید شیف+کلیک راست زد، من می خوام بدون شیفت اینکار رو بکنم).
برای بحث ریجستری و اضافه کردن به منوی کلیک راست رو بلدم، فقط فایل batch رو زیاد وارد نیستم.
توی نت گشتم برای مورد 2 این batch رو با پارامتر 1% توی ریجستری گذاشتم:
echo %1 | C:\Windows\System32\clip.exe
مشکل اینجاست که این دقیقا مثله copy as path ویندوز عمل نمی کنه، مثلا اگه از c:\cmd.exe یه شورتکات توی d:\new folder\test.lnk دارم، این batch فقط target رو کپی می کنه(c:\cmd.exe) اما مالِ ویندوز فقط مسیر خود شورتکات (d:\new folder\test.lnk) رو ذخیره می کنه.
پیشاپیش ممنون