اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

با فرمان های CMD ، یک Network Scanner ساده بسازید!

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    با فرمان های CMD ، یک Network Scanner ساده بسازید!

    با فرمان های CMD ، یک Network Scanner ساده بسازید!

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	network-scanner-00.png نمایش ها:	1 اندازه:	76.8 KB شناسه:	20880



    سلام به همه شما همراهان همیشگی هیوا


    در این آموزش می خواهیم به کمک فرمان هایی که از خط فرمان CMD یاد گرفتیم یک Scanner ساده نیمه حرفه ای بسازیم. اما قبل از ساخت این اسکنر باید چند نکته را در نظر بگیرید:

    * در ساخت این اسکنر فقط از فرمان های CMD استفاده می کنیم .
    * این اسکنر ممکن است خیلی دقیق نباشد (و شاید هم باشد!)
    * این اسکنر خیلی سریع نیست.
    * هدف از ساخت این اسکنر این است که فقط یک اسکنری ساخته باشیم!
    * این اسکنر مناسب برای کلاس C است. شما می توانید آنرا برای سایر کلاس ها توسعه دهید.

    خب برای اینکه بخواهیم یک Network Scanner بسازیم، باید مشخص کنیم که این اسکنر قرار است چه اطلاعاتی برای ما جمع آوری کند؟

    1- پیدا کردن کلاینت های فعال شبکه
    2- به دست آوردن نام کامپیوتر آن ها
    3- به دست آوردن MAC Address
    4- بررسی دسترسی به منابع Share
    5- لیست منابع Share شده هر کلاینت
    6- ذخیره تمامی اطلاعاتی به دست آمده در یک فایل ساده TXT

    خب، برای اسکنر ساده ما فعلا همین موارد کافی است. بعدا که حرفه ای تر شدیم می توانیم این اسکنر را توسعه دهیم و آن را کامل تر و بهتر کنیم. ( بزرگ فکر کن، کوچک عمل کن )


    مواد لازم برای ساخت یک عدد اسکنر ساده:

    0 – یک فایل Text خالی

    برای نوشتن فرمان ها و ایجاد Batch-file
    1 – فرمان Ping

    ساده ترین راه برای پیدا کردن کلاینت های فعال شبکه Ping کردن آن هاست. البته یکی از دلایل غیر دقیق شدن اسکنر ما هم همین است! این جا را بخوانید

    2 – فرمان Ping با سوئیچ /a
    این سوئیچ نام کامپیوتر مقصد را به ما می دهد.

    3 - فرمان ARP با سوئیچ /a
    در آموزش های قبل 8 روش برای به دست آوردن MAC Address بدون نرم افزار جانبی را قبلا بیان کردیم که روش بالا یکی از آن هاست. IP یا نام کامپیوتر را می دهیم و MAC Address تحویل می گیریم.

    4 – فرمان Net Use
    برای بررسی دسترسی به منابع Share به کارمان می آید. همچنین به ما در دقیقتر شدن شناسایی کلاینت های فعال شبکه بهتر کمک می کند.

    5 – فرمان Net View با سوئیچ /all
    فرمان Net view بدون هیچ سوئیچی لیست Computer Name های فعال شبکه را نشان می دهد. اگر با سوئیچ /all استفاده شود می تواند لیست منابع Share شده هر کامپیوتر را نشان دهد.

    6 – برای ذخیره اطلاعات در یک فایل TXTاز ترفند >>file.txt استفاده می کنیم.

    طرز تهیه اسکنر ساده:

    گام اول :

    ابتدا فایل text خالی را باز کنید و فرمان های زیر را در آن قرار دهید ( مانند تصویر )
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	network-scanner-01.png نمایش ها:	1 اندازه:	5.7 KB شناسه:	20881


    ping 192.168.1.1 -n 3 -l 0
    ping -a 192.168.1.1 -n 1 -l 0
    arp -a 192.168.1.1
    net use \\192.168.1.1
    net view /all \\192.168.1.1







    گام دوم:
    این فایل text را با نام network-scanner.bat ذخیره کنید و یک بار آن را اجرا کنید.

    توضیح خط اول :
    به IP مقصد 3 بسته ICMP با سایز 0 بایت ارسال می کند. برای اینکه سرعت ping و در نتیجه سرعت Scanner ما بیشتر شود این کار را کردیم. بهتر است تعداد بسته ها حداقل 3 باشد. همچنین به ازای هر 1 بسته بیشتر، حداقل 1 میلی ثانیه به ازای هر کلاینت فعال و 1 ثانیه به ازای هر کلاینت خاموش در شبکه به زمان اسکن افزوده می شود.

    توضیح خط دوم :
    یک بسته دیگر به IP مقصد ارسال می کنیم تا Computer Name آن را به دست آوریم.

    توضیح خط سوم :
    با این فرمان MAC Address مقصد را به دست می آوریم.

    توضیح خط چهارم :
    به کامپیوتر مقصد متصل می شویم. برای دیدن و استفاده کردن از منابع Share باید این فرمان را بزنیم. این فرمان فقط در یک حالت موفقیت آمیز خواهد بود که کامپیوتر مقصد لزوما کامپیوتر باشد ( پرینتر یا روتر نباشد) و ویندوزی باشد و Resource Sharing آن فعال باشد و Password Protected Sharing آن Turn Off باشد. در غیر این صورت نمی توانیم لیست منابع Share آن را ببینیم. البته با داشتن Username و password مقصد و کمی تغییرات در کد اسکنر می توانیم آن ها را هم اسکن کنیم.

    توضیح خط پنجم :
    در صورتی که فرمان قبل موفقیت آمیز باشد، این فرمان با موفقیت اجرا خواهد شد. این فرمان لیست تمامی منابع Share شده توسط IP مقصد را نمایش می دهد.

    همان طور که دیدید (و می دانستید) دستورات درون این Batch-file فقط برای آدرس 192.168.1.1 اجرا می شود. حال اگر بخواهیم این دستورات برای تمام IP های درون شبکه 192.168.1.0 اجرا شوند چه باید بکنیم ؟ 2 راه حل داریم: این 5 خط کد را برای سایر IP های شبکه 192.168.1.0 تکرار کنیم (copy and Paste) یا از یک حلقه For ساده استفاده کنیم و تمام!


    راه حل اول را که همگی بلد هستیم. پس می رویم سراغ راه حل دوم. استفاده از حلقه For در Batch-file مربوط از سرفصل های Batch-file Programming است. در صورتی که علاقه مند به یادگیری این مباحث هستید می توانید PDF آموزش Batch-file Programming را از لینک زیر دانلود کنید. این PDF به زبات انگلیسی و کمی قدیمی است، ولی برای شروع بسیار مناسب و متن آن بسیار ساده و روان است.

    دانلود PDF آموزش batch-file programming


    و اما استفاده از حلقه For در Batch-file :
    خب ما می خواهیم 5 خط کد درون network-scanner.bat برای تمامی IP های درون شبکه 192.168.1.0 اجرا شود؛ یعنی 254 بار. پس نیاز به یک متغیر داریم که از 1 تا 254 تغییر کند. در این صورت ساختار حلقه For و Batch-File ما به شکل زیر خواهد شد:

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	network-scanner-02.png نمایش ها:	1 اندازه:	6.1 KB شناسه:	20882

    ) For /L %%x in (1,1,254) Do

    ping 192.168.1.%%x -n 3 -l 0
    ping -a 192.168.1.%%x -n 1 -l 0
    arp -a 192.168.1.%%x
    net use \\192.168.1.%%x
    net view /all \\192.168.1.%%x
    (



    توضیح خط اول:

    یعنی برای متغیر عددی x که مقدار اولیه آن 1 است و 1 واحد-1 واحد به آن افزوده می شود تا 254، انجام بده کارهای داخل پرانتز را.
    خب پس از ذخیره کردن Batch-File، آنرا اجرا کنید.

    نتیجه :

    به شرط اینکه فرمان ها را درست نوشته باشید و Batch-file بدون مشکل اجرا شود به 2 نتیجه می رسیم:
    1 اینکه پس از پایان Batch-File ، خط فرمان خودکار بسته می شود.

    راه حل : برای حل مورد اول، در انتهای batch-file عبارت pause را اضافه کنید.
    2 اینکه این اسکنر بسیار کند است!

    راه حل : یکی از مهم ترین دلایلی که باعث کند شدن اسکنر ما می شود عدم اجرای همزمان حلقه For برای هر IP است. یعنی به جای اینکه مثلا به طور همزمان عمل ping شدن برای IP های 1 تا 20 اجرا شود، ابتدا برای 1 و بعد 2 و بعد ... در این مورد فعلا کاری نمی کنیم!

    دلیل بعدی که تا حدودی تاثیر گذار است، نمایش دستورات درون batch-file و خروجی آن ها در خط فرمان است. برای جلوگیری از نمایش دستورات در خط فرمان، کافیست عبارت @echo offرا در اولین خط برنامه قرار دهید.

    برای آن که خروجی در خط فرمان نمایش داده نشود، با ترفند ساده خط فرمانی، آن را به یک فایل txt هدایت می کنیم تا بتوانیم بعدا نیز آن را بررسی کنیم. کافیست در پایان هر دستور عبارت >>C:\hiva\scan-result.txtرا قرار دهیم تا خروجی به فایل scan-result.txt منتقل شود.

    و آخرین راه حل برای حل کندی، کاهش محدوده IP است. یعنی اگر شبکه شما 20 کلاینت دارد می توانید عدد اسکن را بجای 254 به 30 تغییر دهید.

    پس کد batch-file ما باید به شکل زیر تغییر کند:

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	network-scanner-03.png نمایش ها:	1 اندازه:	7.2 KB شناسه:	20883


    این batch-file را اجرا کنید.
    خروجی CMD به شکل زیر خواهد شد:
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	network-scanner-04.png نمایش ها:	1 اندازه:	6.1 KB شناسه:	20884


    بخشی از محتویات فایل scan-result.txt:
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	network-scanner-05.png نمایش ها:	1 اندازه:	13.0 KB شناسه:	20885



    اسکنر ما آماده کار است و شما می توانید برای اسکن کردن شبکه از آن استفاده کنید اما برای اینکه اسکن ما کمی حرفه ای تر و خروجی آن هدفمندتر و تمیزتر شود بهتر است تغییرات زیر را در کد آن به کار ببریم:

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	network-scanner-06.png نمایش ها:	1 اندازه:	11.3 KB شناسه:	20886
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	network-scanner-06-2.png نمایش ها:	1 اندازه:	13.8 KB شناسه:	20887



    توضیح تغییرات :


    مورد اول: متغیری با نام logfile ایجاد کردیم که آدرس محل ذخیره خروجی را در آن قرار دادیم و در پایان هر دستور به جای اینکه کل آدرس محل scan-result.txt را بنویسیم، فقط این متغیر را می نویسیم.

    مورد دوم: برای اینکه بفهمیم اسکنر بر روی کدام IP در حال کار است این خط را اضافه کردیم.

    مورد سوم: برای اینکه اطلاعات خروجی خواناتر شوند برای خروجی هر مرحله توضیحی هم در فایل scan-result.txt قرار می گیرد

    مورد چهارم: برای اینکه فقط اطلاعات موفقیت آمیز و به درد بخور در scan-result ذخیره شود ( نه Error ها و اطلاعات غیر ضرروی و بی اهمیت) از دستور findکمک گرفتیم تا برای هر دستور فقط موارد مفید را پیدا کند و در scan-result.txt ذخیره کند.

    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-10-2020, 02:50 AM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X