نام کاربری: گذرواژه‌:
انجمن فناوری اطلاعات دانشگاه پیام نور تبلیغات


تعرفه تبلیغات در IT98

کنترل Internet Transfer نسبت به کنترل WebBrowser

برچسب‌های کلیدی این موضوع:
کاربران در حال بازدید از این موضوع: 1 مهمان
آخرین ارسال کننده: *setayesh
ارسال‌ها: 1
بازدیدها: 1885
امتیاز دهید
 
  • 0 رأی - میانگین امیتازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
در گوگل محبوب کنید
انجمن فناوری اطلاعات دانشگاه پیام نور


کنترل Internet Transfer نسبت به کنترل WebBrowser

کاربر فعال
تاریخ عضویت: آذر ۱۳۹۲
رشته: کامپیوتر نرم افزار
ترم: شش
دانشگاه: پیام نور
اعتبار: 17
ارسال‌ها: 72
وضعیت : آفلاین
جنسیت: دختر
سپاس ها 116
سپاس شده 33 بار در 25 ارسال
ارسال: #1
ایجاد شده در تاریخ: ۱۸-۹-۱۳۹۳ ۱۱:۴۶ عصر
(آخرین ویرایش در این ارسال: ۱۸-۹-۱۳۹۳ ۱۱:۵۲ عصر، توسط *setayesh.)
مقدمه : کنترل Internet Transfer نسبت به کنترل WebBrowser که در روزهاي
قبلي معرفي شد در سطح پايينتري قرار دارد . اين کنترل با استفاده از دو
پروتکل HTTP و FTP مي تواند داده ها را منتقل کند . اين کنترل زمانيکه از
پروتکل HTTP استفاده مي کند با همان روش کنترل WebBrowser به سرويس دهنده
صفحات وب متصل مي شود اما بجاي آنکه صفحه وب را نمايش دهد متن Html صفحه را
بازيابي مي کند . همچنين زمانيکه اين کنترل از پروتکل FTP استفاده مي کند
قادرست فايلها را بين کامپيوترهاي روي شبکه منتقل سازد .

اتصالات HTTP : همانطور که مي دانيد ، پروتکل HTTP استاندارد وب مي باشد .
صفحات وب با زبان Html نوشته مي شوند و انتقال آنها از server به client
توسط پروتکل HTTP صورت مي گيرد .

متد OpenURL : ساده ترين راه استفاده از کنترل IT متد OpenURL است . شکل کلي اين متد بصورت زير است :



Inet.OpenURL(url,DataType)x



که url آدرس صفحه وب و DataType نوع داده بازيابي شونده است و دو مقدار
icString ( داده متني ) يا icByteArray ( داده باينري ) را مي گيرد . مقدار
بازگشتي اين متد ، داده هاي منتقل شده است .

اين متد بصورت سنکرون کار مي کند يعني در تمام مدت کار آن برنامه نمي تواند
کار ديگري انجام دهد . اگر از icByteArray استفاده کنيد بايد مقدار
بازگشتي آنرا در يک ارايه بايت قرار دهيد .

مثال 1 : از بخش Component در منوي Project مورد Microsoft Internet
Transfer Control 6.0 را به toolbar خود اضافه کنيد . سپس يک کنترل IT روي
فرم قرار دهيد و همچنين يک Rich Textbox و يک دکمه روي فرم قرار دهيد و کد
زير را براي event مربوط به کليک دکمه بنويسيد :



TextBox.text=Inet.OpenURL(“


مثال 2 : کد زير داده هاي باينري را از اينترنت خوانده و آنها را در يک فايل ذخيره مي کند :



Dim b() as byte

B()=Inet.OpenURL

Open App.path & “\test.zip” For Access Write As #1

Put #1,b()x

Close #1





رويداد StateChanged : کنترل IT فقط يک event دارد که StateChanged مي باشد
. اين event زماني روي مي دهد که State کنترل تغيير کند . State هر اتفاقي
است که برنامه بايد از آن مطلع شود . تعريف کلي اين event بصورت زير است :



Inet_StateChanged(ByVal NewState As Integer)x



که NewState مقداري است که حالت جديد را بيان مي کند . مقادير ممکن اين پارامتر عبارتند از :

icNone : حالت تغيير نکرده است .

icResolvingHost : در حال جستجوي آدرس IP کامپيوتر موردنظر .

icHostResolved : آدرس IP کامپيوتر موردنظر يافت شد .

icConnecting : در حال اتصال به کامپيوتر مقصد

icConnected : اتصال به کامپيوتر مقصد برقرار شد .

icRequesting : در حال ارسال درخواست به کامپيوتر مقصد

icRequestSent : درخواست به کامپيوتر مقصد ارسال شد .

icReceivingResponse : در حال دريافت پاسخ از کامپوتر مقصد .

icResponseReceived : پاسخ کامپيوتر مقصد دريافت شد .

icDisconnecting : در حال قطع اتصال با کامپيوتر مقصد .

icDisconnected : اتصال مقصد با موفقيت قطع شد .

icError : در ارتباط با کامپيوتر مقصد خطايي رخ داده است .

icResponseCompleted : تکميل پاسخ – تمام داده ها دريافت شد .

تشخيص خطا در عمليات انتقال داده اهميت بالايي دارد و StateChanged در صورت
بروز هر خطايي مقدار icError را برمي گرداند و اطلاعات خطا را در دو خاصيت
ResponseCode و ResponseInfo برمي گرداند .

انتقال داده بصورت آسنکرون : کنترل IT متدهاي انعطاف پذير ديگري هم دارد که
آسنکرون هستند و اجازه مي دهند تا همزمان با عمليات انتقال داده ، برنامه
به وظايف ديگري هم بپردازد . اين متدها با استفاده از Event Driven Model
کار مي کنند . بدين معني که وقتي برنامه درخواست انتقال داده اي را مي دهد
کنترل IT درخواست را در زمينه برنامه انجام مي دهد و برنامه ازاد است تا به
کارهاي ديگرش بپردازد . زمانيکه داده ها بازيابي شود ، داده ها را از بافر
داخلي کنترل IT مي خواند .

متد GetChunk : در عمليات انتقال آسنکرون ، بايستي داده را توسط اين متد از بافر داخلي کنترل IT بگيريم :



Inet.GetChunk(datasize[,datatype])x



که پارامتر datasize از نوع long بوده و تعيين مي کند چند بايت از بافر
خوانده شود و پارامتر اختياري datatype نوع داده را مشخص مي کند و مي تواند
مقادير icString و icByteArray را بگيرد .

زمانيکه StateChanged وارد حالتهاي icResponseReceived و يا
icResponseCompleted شد بايد از GetChunk استفاده کنيد . بدين صورت که از
يک حلقه استفاده مي کنيم تا کل بافر را بخوانيم :



Private Sub Inet_StateChanged(Byval State as Integer)x

Dim temp1,temp2

Select Case State

Case icResponseCompleted

temp1=””x

temp2=””x

Do

temp1=Inet.GetChunk(512,icString)x

temp2=temp2 & temp1

Loop Until temp1=””x

End Select

End Sub



براي بالابردن کارايي ، بهتر است از قطعات کوچک ( بين 512 تا 1024 بايتي ) استفاده کنيد .

متد Execute : و اما انعطاف پذيرترين متد کنترل IT ، متد Execute است . فرمت کلي اين متد بصورت زير است :



Inet.Execute(url,Command,Data,RequestHeaders)x



که url آدرس مقصد ، Command فرماني است که به کامپيوتر مقصد داده مي شود و
Data و RequestHeaders اطلاعات اضافي لازم براي اجراي فرمان داده شده است .
فرمانهاي Command همان فرمانهاي HTTP هستند که عبارتند از :

- GET : دريافت داده ها از کامپيوتر مقصد

- HEAD : دريافت اطلاعات header از کامپيوتر مقصد

- POST : ارسال اطلاعات لازم براي تکميل درخواست

- PUT : ارسال فايل براي کامپيوتر ميزبان ( upload )

فرمان GET پرکاربردترين فرمان متد Execute است و داده هاي خوانده شده را در
بافر داخلي بافر کنترل IT قرار مي دهد تا بتوان با متد GetChunk آنها را
بازيابي نمود .

مثال :



Inet.Execute



ساير خواص کنترلIT :

- AccessType : نوع دسترسي کنترل IT به اينترنت را مشخص مي کند و سه مقدار مي تواند بگيرد :

icUseDefault : استفاده از تنظيمات رجيستري براي دسترسي به اينترنت

icDirect : اتصال مستقيم کنترل IT به اينترنت

icNamedProxy : اتصال به اينترنت توسط ------

- Document : نام صفحه پيش فرض که در متد Execute از آن استفاده مي شود .
اگر به متد Execute پارامتر url را ندهيد از اين صفحه پيش فرض استفاده مي
کند .

- Password : کلمه رمز عبور کامپيوتر ميزبان FTP

- Procotol : نوع پروتکل مورد استفاده در متد Execute را مشخص مي کند و 5 مقدار مي تواند بگيرد :

icUnknown : نامعلوم

icDefault : پروتکل پيش فرض

icFTP : پروتکل FTP

icHTTP : پروتکل HTTP

icHTTP : پروتکل حفاظت شده HTTP

- Proxy : نام ميزبان ------

- RequestTimeOut : مدت زماني که کنترل IT صبر مي کند تا اطلاعات را دريافت
کند . اگر اين خاصيت صفر باشد کنترل تا هر زمان که لازم باشد براي دريافت
پاسخ صبر مي کند . در حالت سنکرون ( متد OpenURL ) بعد از سپري شدن اين مدت
زمان ، يک خطا توليد مي شود و در حالت آسنکرون ( متد Execute ) رويداد
StateChanged مقدار خطا را بر مي گرداند

- ResponseCode : بعد از بروز حالت icError اين خاصيت کد خطا را مي دهد .

- ResponseInfo : توضيحي درباره خطا

- StillExecuting : اگر True باشد يعني کنترل مشغول انجام کار است .

- URL : آدرس مقصد در متدهاي OpenURL و يا Execute

- UserName : نام کاربر براي ورود به کامپيوتر ميزبان FTP



نکته 1 : براي دريافت برنامه نمونه براي متد Execute با من تماس بگيريد .

نکته 2 : موضوع روزهاي بعد :

1 - اتصالات FTP با استفاده از کنترل IT

2 – آشنايي با تکنيک Collision Detection در ساخت بازيهاي دوبعدي

3 – آشنايي با کنترل WinSock
کنترل WinSock نسبت به تمام کنترلهاي اينترنت در سطح پايينتري قرار دارد .
اين کنترل امکان ايجاد سرويسهاي شبکه اي مبتني بر پروتکلهاي TCP و UDP را
مهيا مي کند . بعبارت ديگر توسط اين کنترل مي توان برنامه هاي کاربردي
Client/Server ( سرويس گيرنده / سرويس دهنده ) ايجاد و با استفاده از
پروتکل TCP و يا UDP بين آنها ارتباط برقرار نمود .

با تنظيم خصوصيات و فراخواني متدهاي اين کنترل مي توانيد به راحتي به يک
کامپيوتر راه دور متصل شويد و داده ها را در هر دو جهت جابجا نمائيد .
نمونه کاربرهايي که مي توان با اين کنترل ايجاد نمود :

Client-server chat ، Mail client ، Mail server ، Proxy Server ، Network Game ، Port Scanner ، پياده سازي الگوريتم هاي موازي و …

مباني TCP :

پروتکل کنترل اينترنت ( Transfer Control Protocol ) اجازه مي دهد يک اتصال
( Connection ) را از طريق سوکت ( socket ) به يک کامپيوتر راه دور (
Remote Computer ) ساخته و استفاده کنيد . با استفاده از اين اتصال ، هر دو
کامپيوتر مي توانند داده ها را بين خودشان انتقال دهند . برقراري ارتباط
از طريق TCP همانند صحبت کردن با تلفن است که بايد حتماً اتصالي بين دو
کامپيوتر صورت گيرد تا بتوانند با هم ارتباط برقرار کنند .

اگر يک برنامه Client مي سازيد بايستي بدانيد که نام يا آدرس IP کامپيوتر
Server چيست ( Remote Host IP ) و همچنين از طريق چه پورتي مي توانيد به آن
متصل شويد ( Remote Port ) . حال بايستي به آن پورت Connect کنيد .

همچنين اگر يک برنامه Server مي سازيد بايستي پورتي را که روي آن به
درخواستها گوش مي دهيد مشخص کنيد ( LocalPort ) و سپس به پورت گوش دهيد (
Listen ) .

زمانيکه يک کامپيوتر Client تقاضاي يک اتصال را مي دهد Server اين درخواست را Accept مي کند .

زمانيکه يک اتصال ساخته مي شود ، هر دو کامپيوتر مي توانند داده را فرستاده و دريافت کنند .









مباني UDP :

پروتکل ديتاگرام کاربر ( User Datagram Protocol ) پروتکلي بدون اتصال (
Connectionless ) است . برخلاف TCP ، کامپيوترها نياز به برپا کردن يک
اتصال ندارند بنابراين يک برنامه مي تواند يک client و يا يک server باشد .
برقراري ارتباط در UDP شبيه ارسال نامه از طريق پست است .

براي انتقال داده توسط UDP ابتدا بايد Local Port کامپيوتر Client تنظيم
گردد . کامپيوتر Server تنها بايستي RemoteHost را برابر آدرس کامپيوتر
Client قرار دهد و همچنين Remote Port را همان Local Port کامپيوتر Client
قرار دهد . سپس دو کامپيوتر مي توانند داده ها را بين خود جابجا کنند .

استفاده از کنترل WinSock :









1 – انتخاب پروتکل: در زمان استفاده از کنترل WinSock اولين کاري که بايد
انجام دهيد انتخاب يکي از پروتکلهاي TCP يا UDP است . طبيعت برنامه اي که
شما مي سازيد نوع پروتکلي را که بايد استفاده کنيد مشخص مي کند . چند سوال
زير به شما کمک مي کند که پروتکل مورد نيازتان را انتخاب کنيد :

- آيا برنامه شما در زمانيکه داده فرستاده مي شود يا دريافت مي شود نياز به
اطلاعاتي از طرف Server يا Client دارد ؟ اگر چنين است بايستي يک اتصال
TCP قبل از ارسال يا دريافت داده ايجاد شود .

- آيا داده بسيار بزرگ است ( مثل تصوير يا فايلهاي صوتي ) ؟ زمانيکه يک
اتصال TCP ساخته مي شود پروتکل TCP اتصال را باقي نگه مي دارد و درستي
ارسال داده تضمين شده است . اين اتصال در هر حال به منابع محاسباتي بيشتري
نياز دارد و بنابراين پرهزينه تر است .

- آيا داده متناوب ارسال مي شود يا در يک نشست ( Session ) ارسال خواهد شد ؟
براي مثال اگر شما يک برنامه مي سازيد که کامپترهاي مشخصي را در يک زمان
خاص از انجام شدن عملياتي مطلع مي کند پروتکل UDP مناسب تر است . پروتکل
UDP همچنين براي ارسال مقادير کوچک داده اي مناست تر مي باشد .

2 – تنظيم پروتکل : براي تنظيم پروتکلي که مي خواهيد در برنامه تان از آن
استفاده کنيد در زمان طراحي برنامه خاصيت Protocol کنترل WinSock را برابر
sckTCPProtocol و يا sckUDPProtocol قرار دهيد . همچنين مي توانيد پروتکل
خود را توسط کد زير تنظيم کنيد :



WinSock.Protocol=sckTCPProtocol



3 – مشخص کردن نام کامپيوتان : براي اتصال به کامپيوتر راه دور بايستي آدرس IP و يا نام کامپوتر را بدانيد .

نام کامپيوتر در Control Panel/Network/Identification موجود است . در
صورتيکه مي خواهيد دو برنامه Client و Server خود را روي يک کامپيوتر تست
کنيد از آدرس IP 127.0.0.1 براي هر دو استفاده کنيد اما اگر دو برنامه را
روي دو کامپيوتر مجزا در شبکه قرار داده ايد با اجراي دستور ipconfig در
DOS Prompt مي توانيد آدرس IP کامپيوتر ها را بدست آوريد .

4 – ايجاد اتصال TCP : در زمان ساخت برنامه اي که از پروتکل TCP استفاده مي
کند ابتدا بايد تصميم بگيريد که اين برنامه Client است يا Server . براي
ساخت يک برنامه Server بايستي روي يک پورت خاص Listen کنيد . زمانيکه
Client تقاضاي يک اتصال را مي دهد ، برنامه Server مي تواند آنرا Accept
کند و بنابراين اتصال کامل شده است . حال Client و Server مي توانند با هم
ارتباط داشته باشند .

مراحل زير ساخت يک سرور چت ساده بر مبناي TCP را نشان مي دهد :

- از منوي Project گزينه Components را انتخاب کنيد و در ليست Component ها مورد Microsoft WinSock 6.0 را انتخاب کنيد .

- يک کنترل WinSock در فرم خود قرار دهيد و نام آنرا tcpserver بگذاريد

- دو textbox با نامهاي txtSendData و txtReceiveData و نيز يک دکمه در فرم قرار دهيد .

- کد زير را در رويداد Form_Load بنويسيد :



Tcpserver.LocalPort=1000

tcpserver.Listen





- زمانيکه درخواستي از طرف Client مي آيد رويداد ConnectionRequest اجرا مي
شود . در اين رويداد ابتدا بايد چک کنيد که حالت کنترل بسته باشد . اگر
چنين نيست اتصال را قبل از پذيرفتن اتصال جديد ببنديد . سپس تقاضا را بر
اساس پارامتر requestID مي پذيريم :



Private Sub tcpserver_ConnectionRequest(ByVal requestID As Long)

If tcpserver.State <> sckClosed Then tcpserver.Close

tcpserver.Accept requestID

End Sub





- حال اتصال بين Client و Server برقرار شده است . کد زير را براي event مربوط به کليک دکمه Send بنويسيد :



Tcpserver.SendData txtSendData.text



- اگر داده اي از طرف Client بيايد رويداد DataArrival اجرا مي شود . کد زير را براي اين رويداد بنويسيد :



Private Sub tcpserver_DataArrival(ByVal bytesTotal As Long)

Dim strData As String

tcpserver.GetData strData

txtReceiveData.Text = strData

End Sub





- کد زير را براي رويداد Form_Unload بنويسيد :



Tcpserver.Close



مراحل ساخت يک TCP Client بصورت زير است :

- يک کنترل WinSock در فرم قرار دهيد و نام آنرا tcpclient بگذاريد .

- دو textbox با نامهاي txtsend و txtreceive و نيز يک دکمه با نام sendدر فرم قرار دهيد .

- يک دکمه با نام connect در فرم قرار دهيد .

- کد زير را براي متد Form_Load بنويسيد :



tcpclient.RemoteHost=”yourservername”x

tcpclient.RemotePort=1000





- کد زير را براي رويداد کليک شدن دکمه connect بنويسيد :



tcpclient.Connect



- کد زير را براي رويداد کليک شدن دکمه send بنويسيد :



tctclient.SendData txtsend.Text



- کد زير را براي رويداد DataArrival بنويسيد :



Private Sub tcpclient_DataArrival(ByVal bytesTotal As Long)

Dim strData As String

tcpclient.GetData strData

txtreceive.Text = strData

End Sub





- کد زير را باري رويداد Form_Unload بنويسيد :



Tcpclient.Close



کدهاي فوق يک سيستم Client-Server ساده را نشان مي دهد . فايل exe هر دو
برنامه را بسازيد و آنها را اجرا کنيد تا بتوانيد سيستم خود را تست کنيد .

5 – پذيرفتن بيش از يک تقاضاي اتصال : Server اي که در بالا ساخته شد تنها
مي تواند تقاضاي يک اتصال را بپذيرد . با استفاده از ايجاد يک آرايه از
کنترل WinSock مي توان چندين تقاضاي اتصال را پذيرفت . براي اينکار کافي
است يک کپي ( instance ) از کنترل بسازيم ( با تنظيم خاصيت Index ) و متد
Accept را براي instance جديد بکار ببريم . فرض کنيد يک کنترل WinSock با
نام sckServer در فرم داريم که خاصيت Index آنرا صفر قرار داده ايم .
همچنين يک متغير intMax از نوع Long تعريف مي کنيم که تعداد اتصالات همزمان
به Server را نگه مي دارد . در event مربوط به Form_Load کد زير را
بنويسيد :



intMax=0

sckServer(0).LocalPort=1000

sckServer(0).Listen





هر بار که تقاضاي يک اتصال مي رسد کد ابتدا تست مي کند که مقدار Index چقدر
است . اگر مقدار Index صفر باشد متغير intMax يکي افزايش مي يابد و از
intMax براي ساخت يک instance جديد از کنترل استفاده مي شود . حال از اين
instance براي پذيرفتن تقاضاي اتصال استفاده مي گردد . براي اينکار کد زير
را براي رويداد ConnectionRequest بنويسيد :



Private Sub sckServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)

If Index = 0 Then

intmax = intmax + 1

Load sckServer(intmax)x

sckServer(intmax).LocalPort = 0

sckServer(Index).Accept requestID

End If

End Sub



6 – ايجاد اتصال UDP : ساخت يک برنامه UDP ساده تر از برنامه هاي TCP است
زيرا پروتکل UDP به اتصال نياز ندارد . در برنامه TCP بالا يک کنترل
WinSock بايستي حتماً Listen مي کرد و يک کنترل ديگر يک اتصال را توسط متد
Connect ايجاد نمود . در عوض پروتکل UDP نيازي به اتصال ندارد . براي ارسال
داده بين دو کنترل WinSock سه مرحله بايستي انجام شود :

- پارامتر RemoteHost برابر نام کامپيوتر مقابل است .

- پارامتر RemotePort برابر پارامتر LocalPort کامپيوتر مقابل

- استفاده از متد Bind براي مشخص کردن LocalPort

چون هر دو کامپيوتر از نظر ارتباط مساوي هستند ، اين نوع برنامه ها را
Peer-to-Peer گويند . براي نمونه از کد زير براي ساخت يک برنامه chat
استفاده مي کنيم :

- يک کنترل WinSock در فرم قرار دهيد و نام آنرا udppeerA بگذاريد .

- خاصيت Protocol آنرا UDPProtocol قرار دهيد .

- دو textbox با نامهاي txtsend و txtreceive و نيز يک دکمه در فرم قرار دهيد .

- کد زير را براي متد Form_Load بنويسيد :



udppeerA.RemoteHost=”nameofpeerB”x

udppeerA.RemotePort=1001

udppeerA.Bind 1002





- کد زير را براي event مربوط به کليک دکمه بنويسيد :



udppeerA.SendData txtsend.text



- کد زير را براي رويداد DataArrival بنويسيد :



Dim strData as String

udppeerA.GetData strData

txtreceive.Text=strData





براي ساخت UDP peerB مشابه مراحل بالا عمل کنيد فقط خاصيت RemoteHost آنرا
نام کامپيوتر PeerA و خاصيت RemotePort آنرا 1002 و خاصيت Bind آنرا 1001
قرار دهيد

برای آشنايي با مبانی شبکه های TCP/IP به بحث مروری بر TCP/IP مراجعه کنيد .



معرفی :



کتابخانه WinPcap يک معماری برای استخراج Packet های TCP/IP و آناليز شبکه
در محيطهای ۳۲ بيتی ويندوز می باشد . اين کتابخانه شامل سه بخش است :



۱ - يک ----- Packet در سطح هسته سيستم عامل ( Kernel )



۲ - يک کتابخانه dll سطح پايين ( low-level ) با نام packet.dll



۳ - يک کتابخانه مستقل از سيستم عامل و سطح بالا ( high-level ) با نام wpcap.dll



----- packet يک درايور دستگاه ( device driver ) است که به ويندوزهای ۹۵ ،
۹۸ ، ME ، NT و ۲۰۰۰ قابليت استخراج و capture کردن و نيز ارسال داده خام (
raw data ) از يک کارت شبکه را می دهد . همچنين اين امکان را دارد که
packet های capture شده را در يک بافر ذخيره کند و يا آنها را ----- نمايد .

packet.dll يک API است که بمنظور دسترسی مستقيم به عملکرد درايور packet
استفاده می شود . بنابراين packet.dll يک واسط برنامه نويسی مستقل از سیستم
عامل های مايکروسافت را مهيا می کند .

Wpcap.dll مجموعه ای از ابزارهای سطح بالای اصلی برای capture را مهيا می
کند که اين توابع با کتابخانه libpcap ( کتابخانه capture در سيستم عامل
UNIX ) سازگار می باشند . اين توابع اجازه capture کردن packet ها را با
روشی مستقل از سخت افزار شبکه و مستقل از سيستم عامل مهيا می کنند .



دريافت کتابخانه WinPcap :



نسخه WinPcap 2.2 :

برای دريافت برنامه auto-installer ( شامل درايور و DLL های مربوطه ) برای
سيستم هایWindows 95/98/ME/NT/2000 به آدرس زير مراجعه کنيد :

WinPcap auto-installer (driver +DLLs)

برای دريافت بسته توسعه دهنده اين کتابخانه که شامل برنامه های نمونه ايجاد
شده توسط packet capture driver و packet.dll و libpcap است ، به آدرس زير
مراجعه کنيد :

Developer's pack

برای دريافت source code کتابخانه WinPcap به آدرس زير مراجعه کنيد :

WinPcap source code



PacketX مجموعه ای از کلاسهای اکتيو ايکس است که امکانات WinPcap را در
ويژوال بيسيک و هر زبان برنامه نويسی ديگری که از تکنولوژی Microsoft
ActiveX پشتيبانی کند مهيا می کند .

بطور خلاصه PacketX از WinPcap برای capture کردن و ----- کردن packet های
شبکه استفاده می کند . علاوه بر capture استاندارد ، شما می توانيد از
PacketX برای گردآوری اطلاعات ترافيک شبکه و ارسال raw packet استفاده کنيد
.



دريافت PacketX



برای دريافت نسخه 1.3 اين کتابخانه به آدرس زير مراجعه کنيد :

PacketX 1.3 Download

قبل از استفاده از PacketX بايستی WinPcap 2.3 را که آدرس آن در بخش قبل گفته شد دريافت و نصب نمائيد .



استفاده از PacketX



با يک مثال ساده سعی می کنم روش استفاده از اين کتابخانه را به شما آموزش دهم .

پس از نصب PacketX وارد محيط ويژوال بيسيک شده و از منوی Project مورد Components را انتخاب کنيد .









سپس مورد PacketX Type Library را انتخاب کنيد تا به ToolBar اضافه شود .









اين ActiveX را در فرمتان قرار دهيد و سپس در قسمت properties آن روی Custom کليک نموده و نوع آداپتور را مشخص نمائيد .









پس از انتخاب آداپتور با کليک روی دکمه Edit می توانيد اطلاعاتی از قبيل مد کاری و ساير بافر و نوع -------- را مشخص نمائيد .









نام اين شی را نيز PacketX1 می گذاريم .

در فرمتان دو دکمه به نامهای Start و Stop قرار دهيد . همچنين يک listBox با نام IPList در فرمتان قرار دهيد .

در کد مربوط به Form_load عبارت زير را بنويسيد :



PacketX1.Adapter.BPFilter = "port 80"x





عبارت فوق مشخص می کند که می خواهيم packet های پورت 80 را capture کنيم .

کد زير را برای event مربوط به کليک شدن دکمه Start بنويسيد :



PacketX1.start





کد زير را برای متد OnPacket مربوط به PacketX1 بنويسيد :



Private Sub PacketX1_OnPacket(ByVal pPacket As PACKETXLibCtl.IPktXPacket)x

IPList.AddItem (pPacket.DestIpAddress)x

End Sub





کد فوق آدرس IP مقصد packet ها را به يک ليست اضافه می کند . شما می توانيد
اطلاعات ديگری از قبيل داده موجود در packet ، سايز داده ، آدرس مبدا ،
تاريخ ارسال داده و غيره را استخراج کنيد .

کد زير را برای event مربوط به کليک شدن دکمه Stop بنويسيد :



PacketX1.stop







برای اينکه بتوانيد در يک مدت خاص وضعيت دريافت و ارسال packet را بدست
آوريد بايد ابتدا توسط دستور زير مد آداپتور را در حالت Statistic قرار
دهيد :



PacketX1.Adapter.Mode=PktXModeStatistics

PacketX1.Adapter.ReadTimeout=2000 '// 2 sec





سپس PacketX1 را start نموده و توسط متد OnStatistics اطلاعات مربوطه را استخراج کنيد .


امضا *setayesh
آنکه دنبال حیات ابدی می گردید

کاش یک تا دو قدم

به سوی ظلمت چشم تو قدم بر می داشت

و به یک جرعه ی آن

ابدی می گردید

یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:

شبکه‌های اجتماعی درباره ما لینک‌های مهم ابزار
انجمن فناوري اطلاعات دانشگاه پيام‌نور در سال 1389 با هدف رشد و ارتقاي علمي دانشجويان آغاز بکار کرد. در IT98 شما قادرید از کاملترین و بروزترین آرشیو نمونه‌سوالات، جزوات، حل تمرینات، گزارش آزمایشگاه، گزارش کارآموزی، پروژه، مقالات و پایان‌نامه استفاده کنید. IT98.ir با عنوان بزرگترین انجمن دانشجویی رشته کامپیوتر دانشگاه پیام‌نور شناخته میشود.
Copyright (c) 2010-2016 it98.iR, all rights reserved
Template designed by : Mehdi Dastkhosh , Powered by MyBB
صفحه اصلی جستجو بازیهای آنلاین لیست اعضا