ورود

View Full Version : محاسبه دیتای ارسالی در شبکه؟



Mask
چهارشنبه 25 فروردین 1389, 17:25 عصر
با سلام
در برنامه شبکه ای قصد دارم مقدار دیتای ارسالی از طرف سرور برای کلاینت را بدست بیارم.
چطوری باید این کار رو کرد.
البته دیتای مورد نظر من هم میتونه مقدار دیتای اینترنتی باشه که سرور برای کلاینت ارسال می کنه هم ارسال یک فایل برای کلاینت.(جدا جدا)
ممنون از راهنماییتون.

vcldeveloper
چهارشنبه 25 فروردین 1389, 18:08 عصر
دیتای اینترنتی چی هست؟ سرورتون از چی برای شبکه استفاده میکنه؟

khazaie01
چهارشنبه 25 فروردین 1389, 18:21 عصر
سلام دوست عزیز
این هم یک نمونه سورس برای این کار

Mask
پنج شنبه 26 فروردین 1389, 12:41 عصر
سلام دوست عزیز
این هم یک نمونه سورس برای این کار

ممنون دوست خوبم . (جناب خزایی)
این برنامه رو داشتم.
این برنامه مقدار دیتای ارسال و دریافتی کلی برای همه سیستمها رو بدست میاره در صورتی که من برای هر سیستم جدا میخام.

دیتای اینترنتی چی هست؟ سرورتون از چی برای شبکه استفاده میکنه؟
و بازم ممنون از علی آقا.
با یه مثال مسئله رو بهتر میشه باز کرد.
ببینید در یه شرکت یه سیستم معمولی که روش ویندوز xp نصبه به عنوان سرور در نظر گرفته شده . که برنامه حسابداری نسخه سرور بر روی سرور و نسخه کلاینت بر روی کلاینت نصب می باشد.
این سرور نه تنها نقش سرور برنامه حسابداری رو داره بلکه از طریق adsl وظیفه تقسیم دیتای اینترنتی رو هم داره.
یعنی اینترنت وارد سیستم سرور شده و از آنجا توسط کابل به سوییچ و سپس از سوییچ به سیستمها تقسیم میشود.
حالا سوال من اینه:
اولا چطوری مقدار حجم دریافتی دیتای اینترنتی رو برای هر کلاینت بدست بیارم(یعنی هر کلاینت چقدر دانلود اینترنتی داشته).
و همچنین چه مقدار حجم فایل های ارسالی برای کلاینت ها بوده است.(یعنی هر کلاینت چقدر فایل از سرور دریافت کرده).
ممنون از دوستان بابت توجهشون.

khazaie01
پنج شنبه 26 فروردین 1389, 13:03 عصر
برنامه شما قرار است روی سرور اجرا بشه ؟(فقط بر روی سرور) یا کلاینت / سرور هست ؟ ( هم روی کلاینت ها و هم بر روی سرور )

Mask
پنج شنبه 26 فروردین 1389, 18:10 عصر
برنامه شما قرار است روی سرور اجرا بشه ؟(فقط بر روی سرور) یا کلاینت / سرور هست ؟ ( هم روی کلاینت ها و هم بر روی سرور )
هر دو دسترسی رو دارم.
اما بیشتر نظرم اینه که یه برنامه واحد روی سرور باشه تا اینکه بخام از هر کلاینت مقدار رو جدا جدا بگیرم(با برنامه net trafic)

khazaie01
یک شنبه 29 فروردین 1389, 08:13 صبح
اگر بر روی سرور بخواهید این کار را کنید ، فکر کنم باید تک تک بسته های که سرور میفرسته را بررسی کنید و ببینید تارگت بسته کجاست ...

Felony
یک شنبه 29 فروردین 1389, 10:35 صبح
باید یک Devie Driver بنویسید که کار بسیار پیچیده ای هست یا از نسخه های موجود آن استفاده کنید .

Mask
یک شنبه 29 فروردین 1389, 13:35 عصر
اگر بر روی سرور بخواهید این کار را کنید ، فکر کنم باید تک تک بسته های که سرور میفرسته را بررسی کنید و ببینید تارگت بسته کجاست ...
ممنون
اما به نظرم کار ساده ای نباشه!! در هد نوشتن همون درایوری که دوستمون گفتن.
در یه کافی نت یه برنامه دیدم که با C# نوشته شده بود که به راحتی فقط از روی سرور تشخیص میداد که کدوم کلاینت چقدر دانلود داشته.
ممنون.

khazaie01
یک شنبه 29 فروردین 1389, 15:44 عصر
ممنون
در یه کافی نت یه برنامه دیدم که با C#‎‎‎ نوشته شده بود که به راحتی فقط از روی سرور تشخیص میداد که کدوم کلاینت چقدر دانلود داشته.

دوست عزیز در حال حاضر این کار را به راحتی انجام میده !!! یعنی معلوم نیست برنامه نویس چقدر روش کار کرده :لبخندساده: شما هم برنامتون تمام بشه خیلی راحت ترافیک یوزر را در میاره :لبخندساده: :چشمک:
اطلاعاتی زیادی در این باره ندارم اما چون تمامی ترافیک خارجی از سرور رد میشه پس میشه با بررسی بسته ها مقدار ترافیک استفاده شده توسط هر کاربر را بدست آورد ... این آخرین راه است شاید راه های ساده تر هم باشه !
اما در مورد سخت بودن کار باید بگم آره سخته اما نیازی نیست همه بخش های برنامه را خودتون از اول بنویسید ... من یک تاپیک زده بودم با عنوان دسترسی به بسته های آیپی که به نتیجه هم رسید : http://barnamenevis.org/forum/showthread.php?t=198567 (http://barnamenevis.org/forum/showthread.php?t=198567)
این تاپیک را یک نگاهی بندازید

khazaie01
سه شنبه 14 اردیبهشت 1389, 06:49 صبح
این رو تازه نوشتم یک تستی کنید ...
این ترافیک هر سیستم را جدا در میاره ، روی سرور باید اجرا بشه (ترافیک لن را فقط در میاره نه اینترنت)
WinPcap حتما باید روی سیستم نصب باشه.
دانلود سورس (http://k01.ir/Downloads/testSource.zip)
دانلود کامپوننت + WinPcap (http://www.magsys.co.uk/delphi/magmonsock.asp)

Mask
سه شنبه 14 اردیبهشت 1389, 16:01 عصر
یادم رفت بگم WinPcap باید نصب باشه
دانلود سورس (http://k01.ir/Downloads/testSource.zip)
دانلود کامپوننت + WinPcap (http://www.magsys.co.uk/delphi/magmonsock.asp)

آقا مممنون
اما یه سوال
هنوز برنامه رو تست نکردم.
اما فقط بازش کردم.
سوال اینه که برنامه چطور متوجه میشه که انتقال اطلاعات از کدوم کارت شبکه ها است.
یک کارت شبکه برای adsl هست و دومی اشتراک اون؟

khazaie01
سه شنبه 14 اردیبهشت 1389, 18:24 عصر
هنگام کار با نرم افزار درایور شبکه را انتخاب می کنید

Mask
سه شنبه 21 اردیبهشت 1389, 20:51 عصر
ممنون آقای خزایی
شرمنده این چند رو گرفتار بودم و نتونستم برنامتون رو تست کنم.
امروز اومدم کافی نت دوستم و برنامه رو تست کردم.
اول اینکه برنامه رو که اجرا می کنیم ارور زیر میاد.

بعدشم تو یه شبکه که حدود 10 تا سیستمه برنامه به شکل زیر در میاد و هیچ عکس العمل دیگه ای نشون نمیده.
مشکل چیه؟

khazaie01
چهارشنبه 22 اردیبهشت 1389, 07:14 صبح
WinPcap را از داخل پوشه کامپوننت نصب کنید ، موقع اجرا هم آیپی داخلی شبکه را انتخاب کنید ، این یک مثال هست ، سورس را باز کنید ، کامپوننت را نصب کنید و بعد اجرا کنید ، پیشنهاد می کنم VMWare نصب کنید تا راحت بتونید تست کنید ...

Mask
چهارشنبه 22 اردیبهشت 1389, 12:06 عصر
WinPcap را از داخل پوشه کامپوننت نصب کنید ، موقع اجرا هم آیپی داخلی شبکه را انتخاب کنید ، این یک مثال هست ، سورس را باز کنید ، کامپوننت را نصب کنید و بعد اجرا کنید ،
ممنون از دوست خوبم آقای خزایی
حاجی من از فایل exe شما استفاده میکنم . به نظرم نیاز نیست که کامپوننت رو بر روی دلفی نصب و مجدد برنامه رو کامپایل کنم.

پیشنهاد می کنم VMWare نصب کنید تا راحت بتونید تست کنید
من دارم روی یه شبکه واقعی تست می کنم . به نظرم نباید دیگه مشکلی باشه؟

khazaie01
چهارشنبه 22 اردیبهشت 1389, 15:56 عصر
من روی سون تست کردم مشکلی نداشت بهتره دوباره کامپایل کنید و همون نسخه از WinPcap را نصب کنید ...

Mask
پنج شنبه 23 اردیبهشت 1389, 20:49 عصر
ممنون از دوست خوبم.
برنامه WinPcap رو دان کردم و فقط نصبش کردم و برنامه درست شد و شروع به کار کرد.
برنامه به نظر میاد کار میکنه اما اشتباه.چون یه فایل 8 مگی رو گذاشتم برا دانلود اما برنامه روی سرور چیزی نشون نداد.و مثل روال قبلش یکی یکی به کیلو بایت اظافه میشد.
ممنون اما برنامه درست مقدار دانلود شده رو نشون نمیده.

khazaie01
پنج شنبه 23 اردیبهشت 1389, 20:53 عصر
دوست عزیز ، دانلود از اینترنت ؟!!

Mask
جمعه 24 اردیبهشت 1389, 12:31 عصر
دوست عزیز ، دانلود از اینترنت ؟!!
به نظر من فرقی نمیکنه.
وقتی شما از سرور یه فایل رو ترانسفر کنی یا از اینترنتی که از سرور توضیع میشه یه فایل رو دان میکنی دقیقا داری فایل ترانسفر میکنی.
به این دلیل که اول سرور فایل رو دانلود میکنه و سپس برای شما ترانسفر میکنه.
نظرتون چیه؟

khazaie01
شنبه 25 اردیبهشت 1389, 08:15 صبح
فرق میکنه دوست عزیز
اگه یادم باشه برنامه را به شکلی نوشتم که فقط حجم بسته هایی را محاسبه کنه که یا فرستنده آنها سرور باشد یا گیرنده آن بسته ها.
دو تا سیستم داریم تو شبکه یکی کلاینت و دومی سرور اینترنت ، کلاینت اینترنت را از سرور میگره و درواقع سرور اینترنت یک گتوی بین کلاینت و اینترنت است
وقتی کلاینت بسته ای را برای ماشینی در اینترنت ارسال میکند ، به ناچار بسته را باید از سرور اینترنت (همون Default gateway) رد کند اما سرور اینترنت هدف اصلی (مقصد) آن بسته نیست !!

در هر بسته آدرس فرستنده و گیرنده قرار دارد وقتی کلاینت بسته ای را برای ماشینی در اینترنت ارسال میکند ، آدرس گیرنده را آدرس آن ماشین قرار میدهد نه آدرس گتوی !!
سرور اینترنت فقط نقش گتوی را ایفا میکند و در اصل بسته های اینترنت را به صاحب اصلی اش می رساند.

پس آدرس گیرنده این بسته ها آدرس سرور اینترنت (مثلا 192.168.0.1) نیست !

این برنامه که براتون نوشتم (مثال همون کامپوننت را تغییر دادم) بر اساس فرستنده و گیرنده هر بسته کار میکنه و با بررسی این دو فیلد و محاسبه حجم بسته ، ترافیک شبکه را محاسبه میکنه...

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

khazaie01
شنبه 08 خرداد 1389, 08:43 صبح
دوست عزیز ، امروز صبح برنامه را تست کردم (وقتی نوشته بودم وقت نشد تست کنم) ، برنامه بدون هیچ مشکلی کار می کنه و ترافیک داخلی شبکه را نمایش میده ، خیلی هم دقیق هست .
این برنامه فقط ترافیکی را نمایش خواهد داد که یا مقصد بسته ، سرور باشد و یا فرستنده بسته ، سرور باشد.
در کل این برنامه فقط و فقط ترافیک داخلی شبکه که به نحوی به سرور مربوط میشه را نمایش خواهد داد و نه ترافیک مربوط به اینترنت.
برای تست این موضوع ، برنامه نمایش دسکتاپ که توی یکی از پستهای شما گذاشته بودم را اجرا کنید ، بخش سرور ریموت را بر روی یکی از سیستم ها و کلاینت را بر روی سیستم سرور اجرا کنید ، مقدار تایمر را 1000 قرار بدید و بعد به سرور ریموت وصل بشید ، حالا برنامه محاسبه ترافیک را نگاه کنید و خوب دقت کنید ، میبینید که هر 1 ثانیه به مقدار یکسان به مقدار ترافیکی که برنامه نمایش می دهد ، افزوده می شود ، که این مقدار همان حجم عکس ارسالی توسط برنامه ریموت است...

بعد از این که تست کردید نتیجه را همینجا بنویسید.
ممنوووووووووووووون

daniyal_1363
جمعه 14 بهمن 1390, 15:21 عصر
لینک دانلود این برنامه غیر فعال شده
میشه دوباره واسه دانلود بزارینش ؟