PDA

View Full Version : روشن کردن کامپیوتر با LAN



vahid_d_0101
یک شنبه 17 آذر 1387, 17:52 عصر
بچه ها من میخوام تو vb یه برنامه بنویسم که اون برنامه بتونه یکی از کامپیوتر های تحت شبکه را روشن کند برای این کار باید سرچ کردم که تنها چیزی که پیدا کردم این بود

اینگونه نرم افزار ها از خاصیت WakeOnLan مادربورد استفاده میکنند در صورتی که مادربورد شما این قابلیت را پشتیبانی کند میتونید از اینگونه نرم افزار ها استفاده کنید روش عملکرد این نرم افزار ها به شرح زیر است :

پکت های ارسالی که در WakeOnLan استفاده می شوند از نوع UDP هستند که شامل MAC آدرس کارت شبکه کامپیوتر مقصد می باشد . که معمولا MAC آدرس به صورت string در مبنای 16 مشخص می شود به عنوان مثال (00:0D:61:08:22:4A ). که برای ارسال آن تنها نیاز به 6 بایت است و همچنین این پکت نیاز به 6 بایت جهت header و 16 برابر طول اطلاعات جهت مشخص شدن نوع آن که مجموعا برابر با 102 بایت می شود .

6 بایت اول پکت که مربوط به header آن است بایستی با 0Xff پر شود.
6 بایت دوم پکت بایستی برابر با MAC آدرس کامپیوتر مقصد شود .
و به ترتیب تا انتهای پکت هر 6 بایت بایستی برابر با مقدار MAC آدرس کامپیوتر شود تا انتهای پکت
این پکت UDP به صورت Broadcast بر روی پورت 9 ارسال می شود همانند 200.0.0.255 . این پکت توسط تمامی کامپیوتر هایی که در شبکه شما وجود دارند دریافت می شود . اما تنها کامپیوتری که MAC آدرس آن با MAC آدرسی که در پکت نوشته شده است یکی باشد روشن می شود .

توجه داشته باشید در صورتی که ترافیک شبکه شما بالا باشد هیچ تضمینی در دریافت این پکت نیست بنابر این شما بایستی این پکت را بیشتر از یک بار ارسال کنید .

vahid_d_0101
یک شنبه 17 آذر 1387, 22:22 عصر
بچه ها کسی نمیتونه کمکی برسونه

mpmsoft
دوشنبه 18 آذر 1387, 09:26 صبح
دوست عزیز خوب این مطلبی که شما پیدا کردید کاملا مشخصه

MAC سریال کارت شبکه هست
Broadcasting یعنی یک پیغام رو برای تمامی کامپیوتر های شبکه بفرستید

خوب گفته باید از پروتکل UDP استفاده کنی. مطالب درباره UDP در این سایت زیاده حتی PDF فارسی

vahid_d_0101
دوشنبه 18 آذر 1387, 11:28 صبح
mpmsoft (http://barnamenevis.org/forum/member.php?u=17067) اگه یه دونه سورس برای این کار معرفی کنید خیلی ممنون میشم در ضمن mac کارت شبکه را چه جوری تو خود Vb به دست بیاریم
با تشکر

mpmsoft
دوشنبه 18 آذر 1387, 11:47 صبح
یه فایل صمیمه کردم آموزش UDP برای وی بی 6 با وین ساک

vahid_d_0101
سه شنبه 19 آذر 1387, 14:08 عصر
کسی میتونه برای روشن کردن کمکی بکنه خیلی بهش نیاز دارم

mpmsoft
سه شنبه 19 آذر 1387, 16:31 عصر
یه نگاه به این آدرس بنداز

http://www.activexperts.com/activsocket/objects/wol/

vahid_d_0101
پنج شنبه 21 آذر 1387, 23:54 عصر
این سایت هم خوندم ولی هنوز چیزی دست گیرم نشده

mghoami
شنبه 23 آذر 1387, 15:43 عصر
من تازه واردم و به برنامه نویسی اشراف ندارم ولی به شبکه چرا شما یا بایید Arp table رو بخونید یا dhcp table رو

vahid_d_0101
شنبه 14 دی 1387, 16:47 عصر
اين سوالم اگه كسي جواب بده ممنون ميشم

vahid_d_0101
سه شنبه 17 دی 1387, 17:34 عصر
بچه ها من دارم یه برنامه مدیریت کافی نت بسار جالب درست میکنم اگه کسی تو این دو سوال ( تاپیک بعدی هم هست ) میتونه جواب بده لطف کنه بگه اخه خیلی تو این دومورد موندم

vahid_d_0101
سه شنبه 17 دی 1387, 22:18 عصر
بچه ها من درموردش یه مقاله پیدا کردم ولی هنوز چیزی نفهمیدم



در مواقعی که در یک شبکه فعالیت می‌کنید، گاهی این اتفاق می‌افتد که نیاز به روشن کردن سیستم از راه دور دارید، البته بسیاری مواقع افراد به جای روشن کردن از راه دور عکس قضیه را عملی می‌کنند یعنی کامپیوتر را برای تمام مدت روشن می‌گذارند، چنین عملی باعث می‌شود تا افرادی که مجاز به دسترسی نیستند مدت زمان بیشتری برای دسترسی به سیستم داشته باشند. اما آیا راهی برای روشن کردن سیستم از راه دور وجود دارد؟!
بسیاری از کاربران هنگامی که یک کارت شبکه خریداری می‌کنند در دفترچه‌ی راهنما یا برروی جعبه‌ی کارت شبکه "Wake On Lan" را دیده‌اند.در این مقاله قصد دارم تا شما را با روش استفاده از این قابلیت در سیستم گنو/لینوکس آشنا کنم. آنچه شمانیاز خواهید داشت یک کارت شبکه‌ که از قابلیت «Wake on Lan» پشتیبانی کند و روشی برای ارسال سیگنال برای چنین کارت شبکه‌ای است.
بسیاری از کارت‌های شبکه امروزی از قابلیت «WakeOn Lan» پشتیبانی می‌کنند، اگر کارت شبکه‌ی شما «on-board» است، به دفترچه راهنمای مادربورد خود مراجعه کنید، اغلب مادربوردهای جدید درای کارت شبکه‌هایی با امکان «Wake On Lan» هستند. برای فعال کردن این قابلیت در چنین مادربوردهایی کافیست در زمان بالا آمدن سیستم وارد قسمت تنظیم BIOS شوید و در قسمت «Power Management» گزینه‌ها‌ی «wakeonlan» یا «netboot» یا «wake onring events» را جستجو کنید. بسته به نوع مادربورد (نوع چپ‌ست بایوسی که در آن استفاده شده است) یکی از گزینه‌های بالا برای فعال کردن قابلیت Wake on Lan استفاده خواهند شد.
1.بسته‌های جادویی

برای روشن کردن یک کامپیوتر از راه دور باید از طریق یک نرم افزار یک پیغام برای کارت شبکه بفرستید. این پیغام‌ها را «بسته‌های جادویی شبکه» یا «Magic Network Packets» می‌نامند. برای استفاده از از این بسته‌های جادویی همان‌طور که اشاره کردیم نیاز به یک کارت شبکه با قابلیت Wake on Lan و نیز برنامه‌ای برای ارسال این بسته‌ها در شبکه دارید. نیازهای سخت افزاری به کارت شبکه‌ی شما بسته است. اما برنامه‌ای که این بسته‌ها را ارسال کند و بتوانید از طریق آن این قابلیت را مدیریت کنید را به سادگی می‌توانید در توزیع خودتان پیدا کنید. برای این کار من از برنامه‌های "ethtool (file:///F:/lenoks/LINUX/GNU%20IRAN/Sakht%20afzar/1.htm#3)" و"wakeonlan (file:///F:/lenoks/LINUX/GNU%20IRAN/Sakht%20afzar/1.htm#2)" استفاده کرده‌ام. البته می‌توانید از "etherwake (file:///F:/lenoks/LINUX/GNU%20IRAN/Sakht%20afzar/1.htm#4)" به جای "wakeonlan" استفاده کنید.
2.اجرا

برای نصب برنامه‌های ذکر شده می‌توانید در توزیع‌هایی که بر اساس دبیان هستند از دستور "apt-get" استفاده کنید، اگر از SuSE استفاده می‌کنید از YaST و در سایر توزیع‌ها از مدیر بسته‌های همان توزیع استفاده کنید. پس از نصب برنامه‌ی ethtool برای بررسی وضعیت در خط فرمان دستور زیر رامی‌نویسیم:



file:///F:/lenoks/LINUX/GNU%20IRAN/Sakht%20afzar/1_files/console.png
root@tux:~# ethtool eth0Settings for eth0:Supports Wake-on: gWake-on: dLink detected: yes




در اینجا "g" به این معناست که قابلیت wakeonlan در کارت شبکه‌ی شما وجود دارد اما "d" در خط پایینی فعال نبودن این قابلیت را اعلام می‌کند. برای فعال کردن بسته‌های جادویی شبکه دستور زیر را به کار می‌بریم:


file:///F:/lenoks/LINUX/GNU%20IRAN/Sakht%20afzar/1_files/console.png
root@tux:~# ethtool -s eth0 wol g





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


file:///F:/lenoks/LINUX/GNU%20IRAN/Sakht%20afzar/1_files/console.png
root@tux:~# ethtool eth0Settings for eth0:Supports Wake-on: gWake-on: gLink detected: yes


دومین "g" که در خط "Wake-on: g" آمده است به معنی فعال بودن قابلیت کار با بسته‌های جادویی شبکه است.


دیگر مطمئن هستیم که این قابلیت فعال شده، حال به آدرس کامپیوتر مورد نظر در شبکه نیاز داریم. طبیعی است که آدرس کامیپیوتر مقصد برای روشن کردن آن نیاز است. در اصل ما به آدرس MAC کامپیوتر مورد نظر نیاز داریم. برای اطلاع از این آدرس کافیست در کامپیوتر مقصد دستور ifconfig را اجرا کنید:


file:///F:/lenoks/LINUX/GNU%20IRAN/Sakht%20afzar/1_files/console.png
tux@target:~$ /sbin/ifconfig


eth0 Link encap:Ethernet HWaddr FF:AA:BB:CC:DD:EE
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20a:e6ff:fef6:a3f4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2218390 errors:0 dropped:0 overruns:0 frame:0
TX packets:3098440 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1624008578 (1.5 GiB) TX bytes:1368310661 (1.2 GiB)
Interrupt:10 Base address:0xd400


در اینجا FF:AA:BB:CC:DD:EE آدرس MAC است.اگر کامپیوتر مقصد در دسترستان نیست برای پیدا کردن آدرس MAC آن کافیست ابتدا به آن کامپیوتر "ping" کنید،سپس به "arp cache" سری بزنید. برای نمونه اگر در شبکه‌ی من ماشینی با نام sun.my.flat وجود داشته باشد و بخواهم آدرس MAC آن را به دست بیاورم در خط فرمان تایپ می‌کنم:

file:///F:/lenoks/LINUX/GNU%20IRAN/Sakht%20afzar/1_files/console.png
gnu@myflat:~$ ping -c 1 sun


PING sun.my.flat (192.168.1.1) 56(84) bytes of data.
64 bytes from sun (192.168.1.1): icmp_seq=1 ttl=64 time=0.202 ms


--- sun.my.flat ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.202/0.202/0.202/0.000 ms


gnu@myflat:~$ /usr/sbin/arp sun
Address HWtype HWaddress Flags Mask Iface
sun ether FF:AA:BB:CC:DD:EE C eth0




دستور "arp" در اینجا برای یافتن آدرس MAC استفاده شده است. فقط توجه داشته باشید که شما باید ابتدا ماشین مقصد را از طریق IP یا نام ماشین ping کنید و سپس از دستور "arp" استفاده کنید. بسیار خوب، پس از آموختن آدرس MAC کامپیوتر مقصد حالا می‌توانید از راه دور روشن یا خاموشش کنید.برای این کار به برنامه‌ای نیاز دارید تا بسته‌های "wakeonlan" را ارسال کند. برنامه‌های مشهور "etherwake" و "wakeonlan" هستند که در اینجا من از "wakeonlan" استفاده کرده‌ام. یکی از مزایای "wakeonlan" امکان استفاده توسط تمام کاربران است که درباره‌ی "etherwake" قضیه عکس است و فقط کاربر ریشه می‌تواند از آن استفاده کنید.
برای ارسال پیغام روشن شدن، کافیست در کامپیوتر راه دور دستور زیر را وارد کنید:

file:///F:/lenoks/LINUX/GNU%20IRAN/Sakht%20afzar/1_files/console.png
gnu@myflat:~$ wakeonlan


Sending magic packet to 255.255.255.255:9 with FF:AA:BB:CC:DD:EE





همان طور که می‌دانید FF:AA:BB:CC:DD:EE آدرس MAC کامپیوتر مقصد یا کامپیوتری است که می‌خواهید از راه دور روشن کنیدش. به همین سادگی .... اگر همه چیز درست پیش رفته باشد کار تمام است.

M.T.P
یک شنبه 09 خرداد 1389, 19:37 عصر
اینم سورس کد روشن کردن در شبکه...
مراحل کار:
1. سیستمی که میخواین تو شبکه روشنش کنیدباید حداقل یک بار روشن شده باشه تا Mac Adress اون معرفی بشه.
2. گرفتن Physical adress سیستم مقصد یا همون Mac Adress(سیستمی که قراره روشن شه)
- چند روش برای بدست آوردن Mac آدرس هست ، یکی اینکه تو Cmd سرور بزنید arp -a که تمامی آی پی ها با Mac رو بهتون میده و میتونین Mac سیستم مقصد رو بدست بیارین.
3. وارد کردن آی پی و subnet mask سیستم مقصد. که فکر کنم میدونین چیه!
4. ارسال دستور

سعی میکنم این دو مرحله یعنی گرفتن mac با subnet mask رو هم با کد بدست بیاریم که دیگه برنامه مون کامل کامل شه.
امیدوارم لذت ببرید. :قلب:

hojjatshariffam
شنبه 20 شهریور 1389, 15:47 عصر
تو تاپیک زیر به زبان سی شارپ کدشو گذاشتم
امید وارم که قابل استفاده باشه
http://www.barnamenevis.org/forum/showthread.php?t=246057
موفق باشد