دریافت پاکت ها بدون استفاده از CallBack
مثال این درس عملکردی بسیار شبیه به مثال درس قبلی دارد.(آداپتور را باز کرده و پاکت ها را ضبط می کند). با این تفاوت که به جای RecivePackets() از RecivePacket() استفاده می کند.
مکانیزم مبتنی بر CallBack برای ضبط پاکت ها ساده و روان است و برای برخی از حالات کاملاٌ مناسب است. به هر حال، فراخوانی CallBack روش کارآمدی نیست زیرا برنامه را در حالت هایی که از چند رشته ای استفاده می کند بسیار پیچیده می کند.
باز کردن کارت شبکه و دریافت پاکت ها
اکنون که دیدیم چگونه می توانی کارت شبکه ای را که می خواهیم با آن کار کنیم را بدست آوریم ، بیاید کار اصلی را شروع کنیم، باز کردن کارت شبکه و دریافت بخشی از ترافیک شبکه. در این درس ما برنامه ای خواهیم نوشت که برخی از اطلاعات موجود در باره پاکت هایی که از کارت شبکه عبور می کنند را چاپ کند.
تابعی که درستگاه دریافت کننده پاکت ها (کارت شبکه) را باز می کند تابع Open() است. پارامتر های این تابع مانند، اندازه تصویر، مشخصه ها و حداکثر زمان خواندن ، نیازمند کمی توضیح است.
دریافت اطلاعات پیشرفته درباره کارت های شبکه نصب شده
درس قبلی (دریافت لیست کارتهای شبکه) ، نشان دهنده نحوه دریافت اطلاعات پایه ای (شامل نام و توضیحات) درباره کارت های شبکه موجود بود. Pcap.Net همچنین اطلاعات پیشرفته دیگری را نیز تدارک می بیند.
عموماً هرنمونه از LivePacketDevice که توسط LivePacket.AllLocalMacin برگشت داده می شود شامل لیستی از نمونه های DeviceAddress شامل موارد زیر است:
§ آدرس واسط شبکه
§ ماسک شبکه
§ آدرس پخش همگانی
§ آدرس مقصد
ادامه مطلب ...کتاب خانه مشهور pcap که نخستین بار بر روی لینوکس و با هدف دریافت پاکت های شبکه ایجاد شد و بعداً به سیستم عامل ویندوز با نام WinpCap راه یافت و امکاناتی چون ارسال پاکت نیز به آن اضافه شد. برای برنامه نویسان دات نت استفاده از توابع موجود در این کتابخانه و تطابق نوع داده و مواردی نظیر آن دشوار است ، از این رو یک کتابخانه دات نتی اپن سورس با نام PCap.Net توسعه داده شده است که در واقع بر مبنای WinPCap ساخته شده است و پیش نیاز استفاده از PCap.Net وجود کتابخانه WinPcap است.
با استفاده از توابع موجود در این کتابخانه قادر خواهید بود ، به کارت های شبکه موجود روی سیستم و مشخصات آنها دسترسی داشته باشید ، پاکت های ارسالی به هر کارت شبکه را دریافت و مشاهده نمایید و نیز بر روی ورودی فیلتر بگذارید و نهایتاً می توانید با استفاده از کارت شبکه خاصی انواع پاکت های شبکه از جمله TCP ، ICMP ، HTTP و غیره را ایجاد و به آدرس خاصی در شبکه ارسال نمود.
برای آشنایی با این کتابخانه قدرتمند با ادامه مطلب همراه باشید.