ورود

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



delphi developer
پنج شنبه 17 فروردین 1385, 10:29 صبح
سلام
من می خواستم کامپیوتر های یک شبکه محلی را از طریق سرور (به صورت زمانبندی یا دستی) روشن کنم آیا راهی وجود دارد(سرور Windows 2003 است)

Identifier
پنج شنبه 17 فروردین 1385, 11:38 صبح
بله سخت افزار هایی به نام REBOOT CONTROLLER برای انجام این کار وجود داره که شما میتونید از طریق کنترل پنل و به صورت remote سرورتون رو restart و یا shutdown کنید البته نمونه های دیگه ای هم هست که با استفاده از تلفن میتونید این کار را انجام بدید . معمولا DataCenter های که Dedicated Server ارائه میدند از این switch ها استفاده میکنند و Control panel مربوطه را به کاربر ارائه می دهند .

و اینم لینک دستگاه مربوطه است :

http://www.connectworld.net/computer/data_center/remote-reboot.html
http://www.remotepowerswitch.com/
http://www.cpscom.com/gprod/sprrc.htm

و اگر هم می خواهید طراحی کنید لینک زیر را ببینید :
http://www.maxim-ic.com/appnotes.cfm/appnote_number/2036

موفق باشید

FirstLine
پنج شنبه 17 فروردین 1385, 13:29 عصر
با سلام
برنامه HandyCoffee که یک برنامه کافی نت هست این کار را میکنه .
به این صورت که برنامه سرور روی سرور و روی هر کلاینت هم برنامه مربوطه نصب میشود.
در هر وقت که مدیر بخواد میتونه همه کلاینتها را خاموش و وقتی که همه کلاینتها خاموش است همه را روشن کند.
با تشکر

Identifier
پنج شنبه 17 فروردین 1385, 16:07 عصر
رنامه HandyCoffee که یک برنامه کافی نت هست این کار را میکنه .
به این صورت که برنامه سرور روی سرور و روی هر کلاینت هم برنامه مربوطه نصب میشود.
در هر وقت که مدیر بخواد میتونه همه کلاینتها را خاموش و وقتی که همه کلاینتها خاموش است همه را روشن کند.


اینگونه نرم افزار ها از خاصیت 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 آدرسی که در پکت نوشته شده است یکی باشد روشن می شود .

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

موفق باشید .

Identifier
جمعه 18 فروردین 1385, 14:37 عصر
این هم نمونه کد روش فوق :



import java.io.*;
import java.net.*;
public class TurnOn {

public static final int PORT = 9;

public static void main(String[] args) {

if (args.length != 2) {
System.out.println("Usage: java TurnOn <BroadCast-IP> <Mac address>");
System.out.println("Example: java TurnOn 200.0.0.255 00:0D:53:45:13:B1");
System.out.println("Example: java TurnOn 200.0.0.255 00-0D-53-45-13-B1");
System.exit(1);
}

String ipStr = args[0];
String macStr = args[1];

try {
byte[] macBytes = getMacBytes(macStr);
byte[] bytes = new byte[6 + 16 * macBytes.length];
for (int i = 0; i < 6; i++) {
bytes[i] = (byte) 0xff;
}
for (int i = 6; i < bytes.length; i += macBytes.length) {
System.arraycopy(macBytes, 0, bytes, i, macBytes.length);
}

InetAddress address = InetAddress.getByName(ipStr);
DatagramPacket packet = new DatagramPacket(bytes, bytes.length, address, PORT);
DatagramSocket socket = new DatagramSocket();
socket.send(packet);
socket.close();

System.out.println("packet sent.");
}
catch (Exception e) {
System.out.println("Failed to send packet: + e");
System.exit(1);
}

}

private static byte[] getMacBytes(String macStr) throws IllegalArgumentException {
byte[] bytes = new byte[6];
String[] hex = macStr.split("(\\:|\\-)");
if (hex.length != 6) {
throw new IllegalArgumentException("Invalid MAC address.");
}
try {
for (int i = 0; i < 6; i++) {
bytes[i] = (byte) Integer.parseInt(hex[i], 16);
}
}
catch (NumberFormatException e) {
throw new IllegalArgumentException("Invalid hex digit in MAC address.");
}
return bytes;
}


}


موفق باشید

Moji1024
یک شنبه 15 دی 1387, 16:18 عصر
WakeOnLan چیست
چجوری میشه فعال کرد
فکر کنم یه ویژگی مربوط به کارت شبکه باشه چون تو ویژگی های کارت ها بیشتر دیدم بیان میشه
ممنون میشم توضیح بدین

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

saeinik
شنبه 20 شهریور 1389, 21:42 عصر
دوست عزیز برنامه NetSupport School قویترین برنامه در این زمینه هست البته به نظر بنده شما میتونید با امکانات گسترده ای که این نرم افزار در اختیارتون میذاره اعم از روشن و خاموش کردن کلاینتها قطع تصویر کلاینت ها قفل کلاینت ها و غیره که بنظرم یک نرم افزار عالی در این زمینه هست به خواسته های خودتون برسین. همچنین از این نرم افزار میتونید برای راه اندازی کلاسهای آموزشی استفاده کنید.خدانگهدار

saeedavril
جمعه 23 اردیبهشت 1390, 18:01 عصر
سلام و خسته نباشید
دوستان میشه آموزش شبکه کردن دو ویندوز در یک سیستم به وسیله نرم افزارVMWare آموزش بدید
و ازهمین طریق بشه با نرم افزار remote control conection تحت خود ویندوز ریموت را انجام داد
من تا یه جاهای تست کردم و جواب داده ولی یه جاهای مشکل دارم
خواهش میکنم کمکم کنید با تشکر


منتظرجواب هستم

خواهش میکنم
:گریه::گریه::گریه::گریه::گریه: :گریه::گریه::گریه::گریه: