PDA

View Full Version : بررسی کد مربوط به ترافیک اینترنت



saber67
چهارشنبه 26 تیر 1392, 13:46 عصر
دوستان عزیز
کدی که اینجا می زارم برای ارتباط Dial-up به خوبی جواب میده و ترافیک واقعی اینترنت رو نشون میده
لطفا کسایی که به اینترنت پر سرعت (ADSL و وایمکس و...) دسترسی دارن این کد رو روی سیستم شون امتحان کنن و نتیجش رو به همراه نوع اینترنت شون بگن (مثلا وایمکس، کد درست نشون می داد یا ADSL، کد درست نشون نداد) اگه بتونین عکسی هم از محیط برنامه موقع اتصال به اینترنت بزارین که چه بهتر

در ضمن سورس برنامه به همراه فایل EXE رو هم ضمیمه کردم، کسایی که حوصله ندارن کد رو کپی کنن! اونو دانلود کنن و امتحان کنن

مدیران عزیز لطفا تاپیک رو منتقل نکنین!! حداقل قبل از گرفتن جواب
همین سوال تو تاپیک بخش شبکه پرسیده شد(http://barnamenevis.org/showthread.php?211778-%D9%85%DB%8C%D8%B2%D8%A7%D9%86-%D9%88%D8%A7%D9%82%D8%B9%DB%8C-Send-amp-Receive) اما هیچکس جواب نداد! انگار کمتر کسی به بخش های دیگه سر می زنه


یه تایمر به فرم اضافه کنین و کد زیر رو کپی کنین تو برنامه:

Private Declare Function RasEnumConnections Lib "rasapi32" Alias "RasEnumConnectionsA" (ByVal lprasconn As Long, ByVal lpcb As Long, ByVal lpcConnections As Long) As Long
Private Declare Function RasGetConnectionStatistics Lib "rasapi32" (ByVal hRasConn As Long, ByVal lpStatistics As Long) As Long

Private Type RASCONN
dwSize As Long
hRasConn As Long
szEntryName(0 To 256) As Byte
szDeviceType(0 To 16) As Byte
szDeviceName(0 To 128) As Byte
pad As Byte
End Type

Private Type RAS_STATS
dwSize As Long
dwBytesXmited As Long
dwBytesRcved As Long
dwFramesXmited As Long
dwFramesRcved As Long
dwCrcErr As Long
dwTimeoutErr As Long
dwAlignmentErr As Long
dwHardwareOverrunErr As Long
dwFramingErr As Long
dwBufferOverrunErr As Long
dwCompressionRatioIn As Long
dwCompressionRatioOut As Long
dwBps As Long
dwConnectDuration As Long
End Type

Private conn As RASCONN
Private stat As RAS_STATS
Private y As Long, z As Long

Private Sub Form_Load()
Me.AutoRedraw = True
Me.FontSize = 12
Timer1_Timer
End Sub


Private Sub Timer1_Timer()
conn.dwSize = Len(conn)
y = conn.dwSize
If RasEnumConnections(VarPtr(conn), VarPtr(y), VarPtr(z)) = 0 Then
stat.dwSize = Len(stat)
If RasGetConnectionStatistics(conn.hRasConn, VarPtr(stat)) = 0 Then
Me.Cls
Me.Print "Sent Byte: " & vbTab & stat.dwBytesXmited
Me.Print "Received Byte: " & vbTab & stat.dwBytesRcved
Me.Print "Sent Frame: " & vbTab & stat.dwFramesXmited
Me.Print "Received : " & vbTab & stat.dwFramesRcved
Me.Print "Received Compression: " & vbTab & stat.dwCompressionRatioIn
Me.Print "Sent Compression: " & vbTab & stat.dwCompressionRatioOut
Me.Print "Connection Speed: " & vbTab & stat.dwBps
Me.Print "Connection Duration: " & vbTab & stat.dwConnectDuration
End If
End If
End Sub

versaPHP
چهارشنبه 26 تیر 1392, 14:12 عصر
این عکس

107408

107411

خدمت شما ...

saber67
چهارشنبه 26 تیر 1392, 14:24 عصر
دمت گرم
ADSL داری دیگه، درسته؟ ظاهرا کافی نتی چیزی هم هست آره؟ چون سرعت رو نوشته 100 مگ ظاهرا از طریق یه کامیپوتر سرور به اینترنت وصلی
درنتیجه پس واسه ADSL هم درست کار می کنه
و از اون مهم تر واسه کلاینت های یه کافی نت هم درست نشون میده
اگه اشتباه گفتم اصلاح کن!

ms-ninja
چهارشنبه 26 تیر 1392, 17:06 عصر
برای من یه فرم خالي نشون میده

vbhamed
چهارشنبه 26 تیر 1392, 18:09 عصر
سلام
روي سيستم من هم فرم خالي
يعني تابع RasGetConnectionStatistics هيچ موقع مقدارش 0 نيست
ADSL - Win Xp

saber67
چهارشنبه 26 تیر 1392, 18:24 عصر
ممنون از دوستان، اما لطفا نوع اتصال اینترنت خودتون رو هم ذکر کنین، مثلا ADSL یا وایمکس یا اینترنت های شبکه ای (مثل دانشگاه و کافی نت و ...)

دوستانی که برنامه اطلاعاتی بهشون نشون نمیده کد مربوط به تایمر رو با این کد عوض کنن، شاید اطلاعاتی نشون داد
(یا ضمیمه جدید رو دانلود کنین که همین تغییر توش ایجاد شده)

Private Sub Timer1_Timer()
conn.dwSize = Len(conn)
y = conn.dwSize
Call RasEnumConnections(VarPtr(conn), VarPtr(y), VarPtr(z))
stat.dwSize = Len(stat)
Call RasGetConnectionStatistics(conn.hRasConn, VarPtr(stat))
Me.Cls
Me.Print "Sent Byte: " & vbTab & stat.dwBytesXmited
Me.Print "Received Byte: " & vbTab & stat.dwBytesRcved
Me.Print "Sent Frame: " & vbTab & stat.dwFramesXmited
Me.Print "Received : " & vbTab & stat.dwFramesRcved
Me.Print "Received Compression: " & vbTab & stat.dwCompressionRatioIn
Me.Print "Sent Compression: " & vbTab & stat.dwCompressionRatioOut
Me.Print "Connection Speed: " & vbTab & stat.dwBps
Me.Print "Connection Duration: " & vbTab & stat.dwConnectDuration
End Sub

ms-ninja
چهارشنبه 26 تیر 1392, 20:51 عصر
من ADSL درام الان همه رو نشون میده ولی مقدار همه صفره

ویندوز هم 7

saber67
چهارشنبه 26 تیر 1392, 21:44 عصر
پس ظاهرا برای ADSL جواب نمیده! حیف شد!
ولی کاش versaPHP هم نوع اتصالش رو می گفت

ms-ninja شما از پروکسی و این جور چیزا استفاده نکردی؟
آخه بعضی موقع ها استفاده از پروکسی می تونه بعضی API های مربوط به شبکه و اینترنت رو دچار اشتباه کنه

ms-ninja
چهارشنبه 26 تیر 1392, 23:00 عصر
خیر . مدم من اتومت کانکت میشه به نت

mmssoft
پنج شنبه 27 تیر 1392, 01:08 صبح
برای من هم تمام مقدار ها رو صفر نشون میده (فایل پست 6 رو دانلود کردم)
ADSL - Win Se7en

versaPHP
سه شنبه 19 شهریور 1392, 04:02 صبح
من اونموقع ADSL مخابرات داشتم .
کافی نت هم نبودم ! سرعتمم ۲ مگ بوده (اونجور که به ما گفتند)

Mr'Jamshidy
سه شنبه 19 شهریور 1392, 09:50 صبح
سرویس دهنده: شاتل
نوع ارتباط: PPPOE
سیستم عامل: ویندوز 7

خروجی: بی خروجی