تازه های سایت

شناسایی کلیه سیستم های آنلاین داخل شبکه – رویکرد آسان (قسمت دوم)

بسم الله الرّحمن الرّحیم

سلام دوستان.

در قسمت اول این مقاله چند روش برای پیدا کردن سیستم های آنلاین داخل شبکه را مورد بحث قرار دادیم و به این نتیجه رسیدیم که بهترین روش، استفاده از بسته های ARP است. همچنین در مورد روند پیاده سازی پروژه صحبت کردیم.

اگر تا الان قسمت اوّل مقاله رو نخواندید یا فراموش کردید می توانید از آدرس زیر به آن مراجعه کنید:

شناسایی کلیه سیستم های آنلاین داخل شبکه – رویکرد آسان (قسمت اوّل)

در این قسمت از مقاله می خواهیم بخشی از پیاده سازی این پروژه را با هم بررسی کنیم.

۲- کدنویسی

میخواهیم از QLAN.dll استفاده کنیم. به همین دلیل یک پروژه جدید Qt ایجاد می کنیم و کدهای زیر را به .pro آن اضافه می کنیم:

شما باید ماژول network را اضفه کنید چون dll بالا از کلاس QHostInfo استفاده می کند.

همچنین باید مسیر کتابخانه و فایل های سرآیند winpcap را هم مشخص نمائید.

در گام بعدی شما باید QLAN.lib و  QLAN.dll  و  qlan.h  و qlan_global.h را به پروژه تان اضافه کنید. بعد از اضفه کردن، نوبت به این می رسد که از کلاس QLAN استفاده کنید. پس نیاز دارید آن را include کنید:

مورد دوم و سوم برای کتابخانه winpcap است.

مهمترین بخش پروژه که باید توضیح داده شود کدهای زیر است. چون بقیه بخش ها بیشتر به ظاهر پروژه می پردازد تا الگوریتم پروژه.

ایتدا یک متغیر بولین و یک متغیر رشته ای تعریف کردم. از متغیر بولین برای این در کلاس QLAN استفاده می کنم که ببینم آیا این کلاس کارش را بدون مشکل انجام داده است یا خیر؟ در صورتی که کارش را درست انجام نداده باشد با متغیر رشته ای ارور لازم را دریافت می کنم و به کاربر نمایش می دهم.

فرض کنید ایجاد شی از کلاس QLAN بدون مشکل انجام شود. الان برای اینکه سیستم های آنلاین را پیدا کنید فقط و فقط کافیست تابع AllOnline را صدا بزنید. به همین سادگی!

با صدا زدن این تابع زوج آدرس <IP,MAC> های آنلاین برگردانده می شود و کافیست آن ها را به هر صورتی که دوست دارید در پروژه تان نمایش بدهید. من از یک QTableView استفاده کردم.

۳- نحوه استفاده: در یک نگاه

فقط ۶ قدم تا پیدا کردن سیستم های آنلاین:

* لینک دادن به QLAN.lib در .pro

* اضافه کردن QT += network در .pro

* اضافه کردن qlan.h و qlan_global.h به پروژه

* include کردن موارد زیر:

* ساخت یک شی از کلاس QLAN

* صدا زدن تابع AllOnline

4- پروژه نمونه

در زیر کامپوننت های پروژه نمونه را توضیح می دهیم:

Find Adapters

پیدا کردن کلیه آداپترهای شبکه سیستم.

توجه: قبل از زدن این دکمه ابتدا دستور “net start npf” را در CMD اجرا کنید.

All Adapters

با زدن دکمه بالا، کلیه آداپترهای شبکه سیستم در کومبوباکس فوق نشان داده خواهد شد.

Show Description

با انتخاب یکی از آداپترها و زدن دکمه بالا، اطلاعات آن آداپتر نمایش داده می شود.

Description

با زدن دکمه Show Description، اطلاعات آداپتر انتخابی در جدول بالا نمایش داده می شود.

Scan the LAN

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

توجه: برای تکمیل عملیات جستجو باید چند ثانیه منتظر بمانید.

Online IPs

بعد از زدن دکمه Scan، کلیه آدرس های IP آنلاین در این جدول نمایش داده می شوند.

۵- منابع

Qt Forum

Stackoverflow

 tools.ietf.org

 www.h3c.com

6- دانلود پروژه نمونه به همراه فایل های کتابخانه و سرآیند

پیش نیاز: نصب winpcap که می توانید از اینجا دانلود کنید: http://www.winpcap.org/install/

دانلود فایل setup نرم افزار (فقط برای ویندوز ۷ و بدون نیاز به دانلود پیش نیاز):  پرشین گیگ   یا   مدیا فایر

دانلود فایل اجرایی پروژه نمونه

دانلود سورس کد پروژه نمونه

دانلود فایل .lib برای حالت Debug

دانلود فایل .lib برای حالت Release

امیدوارم مقاله خوبی برای شما بوده باشه.

با تشکر از وقتی که گذاشتین.

در پناه حق

محمّدرضا

۴,۴۹۷ total views, 2 views today

Print Friendly
Facebook0Google+0Twitter0LinkedIn0

درباره‌ی محمّدرضا

من محمّدرضا هستم فارع التحصیل سال 93 کارشناسی IT. علاقمند به مباحث امنیت و برنامه نویسی، مخصوصا برنامه نویسی شبکه.

۳ نظر

  1. سلام
    گروه آموزشی مهندس یک اولین انجمن تخصصی زبان ++C رو راه اندازی کرده
    دوستان میتونن همکاری کنن تا این انجمن یک مرجع کامل برای تمامی علاقه مندان و کاربران این زبان بشه
    آدرس انجمن گروه آموزشی مهندس یک اولین انجمن تخصصی زبان ++C:
    http://froum-c.engineer1.ir/forum.php?
    سعیدجان اگر که این انجمنو لینک کنی تو سایتت خیلی خوب میشه

جوابی بنویسید

ایمیل شما نشر نخواهد شد.خانه های ضروری نشانه گذاری شده است. *

*


× 4 = شانزده

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url=""> <img src="" alt="" class="" width="" height="">

http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_bye.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_good.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_negative.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_scratch.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_wacko.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_yahoo.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_cool.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_heart.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_rose.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_smile.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_whistle3.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_yes.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_cry.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_mail.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_sad.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_unsure.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_wink.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wmpl_laughing.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_angry.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_bigsmile.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_bigsup.gif 
http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_hopless.gif