PDA

View Full Version : کانکت و دیسکانکت کردن سیستم های داخل شبکه



sarmad
پنج شنبه 10 اسفند 1385, 14:22 عصر
سلام

دوستان بنده یه نرم افزار مدیریت کافی نت نوشتم که یکی از امکاناتی که باید حتما بهش اضافه

کنم قطع و وصل کردن اتصال یا همون connection های سیستم های تو شبکه هست که با این کار

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

تونستم پیدا کنم disable کردن connection ها به صورت local بود و سورس یا کلاسی برای این کار

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

با تشکر

sarmad
جمعه 11 اسفند 1385, 23:13 عصر
دوستان نظری ندارن؟

Sub Zero
شنبه 12 اسفند 1385, 20:11 عصر
سلام .
برای کاری که میخوای انجام بدی باید حتما برنامت به صورت Client - Server باشه یعنی یه برنامه مخصوص سرور نوشته بشه ویه برنامه هم مخصوص کلاینتها .
بعد کافیه از طریق Socket Programing بین این دو برنامه ارتباط برقرار کنی و از طریق سرور به کلاینت درخواست دیسکانکت رو بفرستی . بعد برنامه کلاینت هم به صورت Local سیستم رو دیسکانکت کنه
دقیقا نمیدونم خودت تا چه حد پیش رفتی اما این مثال (http://www.barnamenevis.org/forum/showpost.php?p=314640&postcount=44) نحوه انجام یه همچین کاری رو نشون می ده .

sarmad
پنج شنبه 17 اسفند 1385, 01:05 صبح
ممنون

اما مشکل اینجاست که برای کانکت کردن دوباره سیستم چیکار باید کرد چون وقتی که

connection disable بشه دیگه راهی باقی نمیمونه که بشه command فرستاد!!!!

یه راه دیگه هم هست اونم اینکه روی سرور بشه پاکت های که توسط اون ip فرستاده میشه رو

block کرد که بازم راه حلی ندیدم

باز هم ممنون و اگر راه حلی در نظر داشتید ممنون میشم

sarmad
جمعه 18 اسفند 1385, 11:02 صبح
منظور بنده قطع کردن lan connection سیستم های کلاینت هست که دیگه دسترسی به اینترنت

نداشته باشن. و به این صورت پهنای باند کمتری مصرف میشه و در نهایت سرعت کلاینت های دیگه

بالا تر میره. (اگر اتصال اینترنت سرور قطع بشه که دیگه هیچ سیستمی نمیتونه از نت استفاده بکنه)

Sub Zero
جمعه 18 اسفند 1385, 12:05 عصر
منظور بنده قطع کردن lan connection سیستم های کلاینت هست که دیگه دسترسی به اینترنت نداشته باشن. و به این صورت پهنای باند کمتری مصرف میشه و در نهایت سرعت کلاینت های دیگه بالا تر میره. (اگر اتصال اینترنت سرور قطع بشه که دیگه هیچ سیستمی نمیتونه از نت استفاده بکنه)
اینکه شما بخواید سیستم رو از شبکه خارج کنید اصلا کار درستی نیست . چند روش رو بهتون پیشنهاد میکنم .

1- به محض اینکه کاربر کارش رو با سیستم تموم کرد برنامت سیستم رو Log off کنه این طوری نه تنها کلاینت از اینترنت خارج می شه بلکه توسط کاربرای مزاحم دیگه هم انگولک نمی شه ( همچین مواردی رو توی کافینت ها دیدم .) البته باید برنامت رو طوری بنویسی که با بالا اومدن ویندوز اجرا بشه

2- می تونی از یه تابع API به نام Block Input استفاده کنی این تابع ارتباط صفحه کلید و موس رو با ویندوز قطع میکنه در این صورت تا زمانی که برنامت ویندوز رو به حالت عادی در نیاره کسی نمیتوه از سیستم کلاینت مورد نظر استفاده کنه .

3- توی ترفندهای رجیستری دنبال روشهایی بگرد که دسترسی به اینترنت رو قطع کنه فکر کنم فکر کنم یه همچین ترفندهایی وجود داشته باشن .

mostafa_leman
جمعه 18 اسفند 1385, 14:13 عصر
فکر نمیکنم ربطی به سیستم کلاینت داشته باشه . مثلا برنامه BandWidth Controller دقیقا همین کار رو میکنه . یعنی شما میتونید پهنای باندی که سیستم کلاینت استفاده میکنه رو تعیین کنید یا صفر کنید. بدون اینکه در سیستم کلاینت برنامه ای نصب بشه

Sub Zero
جمعه 18 اسفند 1385, 15:03 عصر
فکر نمیکنم ربطی به سیستم کلاینت داشته باشه . مثلا برنامه BandWidth Controller دقیقا همین کار رو میکنه . یعنی شما میتونید پهنای باندی که سیستم کلاینت استفاده میکنه رو تعیین کنید یا صفر کنید. بدون اینکه در سیستم کلاینت برنامه ای نصب بشه
استفاده از Socket Programing و برنامه های مبتنی بر کلاینت - سرور در واقع یکی از روشهای برنامه نویسی شبکه است . استفاده از WMI هم روش دیگه ایست که به قول شما نیاز به برنامه کلاینت ندارد . اما برنامه ای که شما نام بردید و امثال اینها از زبانهای خانواده C برای نوشتنشون استفاده می شه واینجا هم بخش vb.net هست . پس نمیشه این برنامه رو به عنوان ملاک قرار داد

sarmad
جمعه 18 اسفند 1385, 20:11 عصر
دوستان در مورد WMI اگه reference خوبی سراغ دارن ممنون میشم

و آیا در حالت log off سیستم کلاینت از پهنای باند استفاده میکنه؟

و یه مورد دیگه اینکه فکر نکنم vb چیزی از خانواده c کم داشته باشه گرچه با c آدم دستش باز تره

به هر حال اگر برنامه BandWidth Controller رو با c نوشتن حتما سورس معادل با vb رو هم

میشه با یه کمی تغییرات پیدا کرد.

باز هم تشکر

mostafa_leman
جمعه 18 اسفند 1385, 20:49 عصر
و یه مورد دیگه اینکه فکر نکنم vb چیزی از خانواده c کم داشته باشه گرچه با c آدم دستش باز تره



دقیقا موافقم

Sub Zero
شنبه 19 اسفند 1385, 11:16 صبح
اینجا جای بحث بر سر تفاوتهای خانواده C و VB نیست اما یک مثال کوچیک براتون می زنم. دنبال یه روش می گشتم که بتونم توی vb.net مقدار Send - Recive دیتا رو از اینترنت محاسبه کنم هر چی گشتم چیزی پیدا نکردم اما همین کار براحتی توی ++C انجام شده بود
اینم لینکش (http://www.codeproject.com/internet/connectionstatus.asp) یه نگاهی بهش بندازید شاید شما بتونید به vb تبدیلش کنید به قول شما :

فکر نکنم vb چیزی از خانواده c کم داشته باشه
اما برای WMI بهترین منبع استفاده از مستندات دات نت یا همون MSDN هستش . به این تاپیک (http://barnamenevis.org/forum/showthread.php?t=57865&highlight=%98%E4%CA%D1%E1+%D4%C8%98%E5)هم یه نگاه بندازید .

sarmad
شنبه 19 اسفند 1385, 22:32 عصر
خیلی ممنون از کمکتون