임베디드 프로그래밍  

         
전체 기타 | WinCE | Delphi | VisualC | ARM | Media | SE | 마리오네트 | Java | wdm | JTAG | 영상처리 | 인증 | 질문/답변 | H/W | 알고리즘 | Platform | .net | VB | PPC | Network | android | QT | WWW | Linux |
WOL Wake On Lan 원격 부팅 만드는 방법
하창호04-21 11:35 | HIT : 11,709
http://seunghan.tistory.com/329
http://dorigom.springnote.com/pages/1519772

1. 조건
  - 랜카드에서 Wake-on-LAN 기능 지원
  - Wake-on-LAN 기능을 지원하는 인터넷공유기

2. 바이오스 설정
  - Award BIOS
     .PCI configuration > Onboard LAN Boot ROM : Enable
     .Power > Power Up Control > Power Up On PCI Card :Enable
  - Phoenix BIOS
     .Wake On Lan : Enable

3. 랜카드 설정
  - Realtek 칩셋
     .전원을 절약하기 위해 컴퓨터가 이 장치를 끌 수 있음 : 사용
     .이 장치로 컴퓨터를 대기상태에서 빠져나오게함 : 사용
     .관리 스테이션에서만 대기 모드 상태의 컴퓨터를 해제 시킬 수 있음 : 사용
  - Intel 칩셋
     .전원을 절약하기 위해 컴퓨터가 이 장치를 끌 수 있음 : 사용
     .이 장치로 컴퓨터를 대기상태에서 빠져나오게함 : 사용



4. 시스템 켜기
  - 매직패킷 보내는 유틸 , 사이트
     .WakeOnLanGui 또는 www.depicus.com/wake-on-lan/woli.aspx
       주소 , IP , 서브넷 , 포트 입력후 전송
  - WAKE ON LAN 매직 패킷 프로그램 (첨부파일 다운로드)
    

     .LAN 상에서의 내부 IP 사용한 부팅
       맥 어드레스, LAN IP(내부 IP), 서브넷 255.255.255.0, Local Subnet 선택, 원격포트번호X
     .WAN 상에서의 IP 사용한 부팅
       맥 어드레스, WAN IP(외부 IP), 서브넷 255.255.255.255, internet 선택


WOL(Wake on Lan)편집하기 http://kldp.org/Translations/html/WakeOnLan-KLDP/index.html

What?
특별히 설계된 네트웍 패킷을 사용하여 원격의 컴퓨터를 기동하는 것이다. 이 기능은 네트웍 카드와 마더보드가 Wake on Lan을 지원해야만 제대로 동작한다.

How?
WOL 은 다음과 같은 원리로 동작한다:

PC 를 종료할 때 NIC (네트웍 카드) 은 완전히 꺼진 것은 아닌 상태로 여전히 켜져 있으며, '매직' 패킷이 오는지 살펴보고 있다. 이 패킷은 특정한 문자열 (byte-sequence) 이 포함되어 있어야 하며, 아무 프로토콜 (이를테면 IPX, IP 따위) 에나 얹혀오면 된다. '마법의' 문자열을 만드는 코드를 참조하기 바란다.

이 프로그램은 UDP 를 사용해서 패킷을 보낸다. 이더넷 인터페이스로 전달되는 UDP 패킷의 완전한 모습은 아래와 같은 것이다:

          [ethernet header][IP header][UDP header][Magic sequence][CRCS]
          

스크립트는 단지 이 패킷을 보내는 것으로 족하다. NIC 은 수신만 할 뿐이며 무언가 응답하는 것이 없으므로, 이 패킷을 보낸 후 돌아오는 데이터 등에 대해서는 신경쓰지 않아도 좋다.

프로토콜에 대한 좀 더 상세한 설명은 AMD 백서를 참고하라.



http://www.chocomug.com/tt/chocomug/292

http://www.remotewakeup.com/

http://en.wikipedia.org/wiki/Wake-on-LAN



예제소스
Wake-On-Lan
It’s so sweety to maintain all workstations automatically in, say, 3am at night :) But this requires to turn it all on, and switch off after maintenance. Shutdowning is not a problem, but turning on… Turning on is not a problem too, but <=> your workstations support Wake-On-Lan technology.

Here a small C example how to invoke Wake-On-Lan.

Algo is simple - broadcast UDP magic-packet.

Magic packet consists of:

Six 0xFF bytes
Target MAC address repeated sixteen times.
If, say, target MAC is 32:00:00:23:11:13. Magic packet is

          FF FF FF FF FF FF 32 00 00 23 11 13 32 00 00 23 11 13 32 00 00 23 11 13
          32 00 00 23 11 13 32 00 00 23 11 13 32 00 00 23 11 13 32 00 00 23 11 13
          32 00 00 23 11 13 32 00 00 23 11 13 32 00 00 23 11 13 32 00 00 23 11 13
          32 00 00 23 11 13 32 00 00 23 11 13 32 00 00 23 11 13 32 00 00 23 11 13
          32 00 00 23 11 13
          Ok, ive stop bugging you and here is the code:

          /**
           * wol.c - Wake-On-Lan example.
           *
           * 2008, Michelle Beloshitsky (itanko@li.ru)
           *
           **/
          
          #include "winsock2.h"
          #include "stdio.h"
          
          #define MYPORT 2050
          
          #define MAGIC_PACKET_SIZE 6*17
          
          /**
           * Creates magic packet
           **/
          char* do_magic(char* mac)
          {
              int i; int j;
          
              char * res = malloc(MAGIC_PACKET_SIZE);
              memset(res, 0xFF, MAGIC_PACKET_SIZE);
          
              for(i=1;i<17;i++)
              {
                  for(j=0;j<6;j++)
                  {
                     res[i*6+j] = mac[j]; // expected to be at least 6 chars
                  }
              }
              return res;
          }
          
          int main()
          {
              unsigned char test_mac[6] = {0x00, 0x29, 0xED, 0x46, 0xE2, 0x06};
          
              WSADATA wsadata;
              if ( WSAStartup(MAKEWORD(2,2), &wsadata) != 0 )
              {
              printf("WSAStartup() error %i\n", WSAGetLastError());
                  return 1;
              }
          
              SOCKET sock;
              sock = socket(AF_INET,SOCK_DGRAM,0);
              if (sock == INVALID_SOCKET)
              {
                  printf("socket() error %i\n", WSAGetLastError());
                  return 1;
              }
          
              char bc = '1'; // broadcast
          
              if(setsockopt(sock,SOL_SOCKET,SO_BROADCAST,&bc,sizeof(bc)) < 0)
              {
                  printf("setsockopt() error %i\n", WSAGetLastError());
                  closesocket(sock);
                  return 1;
              }
          
              struct sockaddr_in Sender_addr;
          
              Sender_addr.sin_family       = AF_INET;
              Sender_addr.sin_port         = htons(MYPORT);
              Sender_addr.sin_addr.s_addr  = INADDR_BROADCAST;
          
              int res = sendto(sock,
                               do_magic(test_mac),
                               MAGIC_PACKET_SIZE,
                               0,
                               (struct sockaddr_in *)&Sender_addr,
                               sizeof(Sender_addr));
          
              if(res != MAGIC_PACKET_SIZE)
              {
                  printf("sendto() error %i\n", WSAGetLastError());
                  closesocket(sock);
                  return 1;
              }
          
              closesocket(sock);
              WSACleanup();
          }




Notice  기타 :: 내가 만든 제품이 CES 2009 에서 혁신상을 탔다.    하창호 2009·01·21 4405
490  Linux :: 우분투에서 리모트 데스크탑 설치    하창호 2011·07·16 2878
489  Linux :: 우분투 멀티 모니터 기본모니터 수정    하창호 2011·07·16 3187
488  android :: 겔럭시 계열 USB 드라이버 다운로드    하창호 2011·05·30 3086
487  Linux :: gcc: error trying to exec 'cc1plus'...    하창호 2011·04·22 8223
486  android :: Android Preview surface 위에 컨트롤 위치...    하창호 2011·03·09 6345
485  android :: Android Irrlicht 3D 포팅 예제    하창호 2011·02·18 6328
484  기타 :: Linux Unicode programming    하창호 2011·02·18 3368
483  영상처리 :: BMP 스팩 Height 역전에 대해 새롭게 알게된 사실    하창호 2010·07·28 4078
482  WWW :: Facebook JavaScript    하창호 2010·06·16 3893
481  WWW :: Server-side Personalization faceboo...    하창호 2010·06·14 3727
480  WWW :: REST API Server 구축 관련 자료를 수집  …1  하창호 2010·06·11 4131
479  WWW :: CURL 사용방법  …1  하창호 2010·06·11 4005
478  기타 :: MAC OS X 10.5.8 leopard 용 XCODE 및 I...    하창호 2010·05·11 5357
477  WWW :: Facebook Query Language 의 Table Lis...    하창호 2010·05·04 3567
476  기타 :: VM 에 OSX 설치  …3  하창호 2010·04·27 3412
475  WWW :: What is Data Web Services?    하창호 2010·04·14 3315
474  WWW :: 루비 프로그래밍    하창호 2010·04·14 3279
473  WWW :: IBM developerworks    하창호 2010·04·14 3166
472  WWW :: 웹 포탈 사이트 설계    하창호 2010·04·13 3596
471  WWW :: 아마존 클라우드 잘 정리된 링크    하창호 2010·04·13 3350
470  android :: Android UI 설계용 Layout Tool    하창호 2010·03·19 7389
469  android :: Android 개발환경 설정 요약  …1  하창호 2010·03·11 3490
468  WinCE :: QR CODE 관련 2차원 바코드  …1  하창호 2010·01·06 5826
467  android :: G4L - ghost for linux    하창호 2009·12·11 4286
466  .net :: NDDE Source    하창호 2009·10·07 3605
465  android :: 리눅스에서 IP 설정 및 USB LAN 설정    하창호 2009·08·20 5608
464  VisualC :: ODBC 이용 EXCEL 사용시 데이터 입력 주의    하창호 2009·08·07 3693
463  VisualC :: Office Excel 2007 SQL에 넣기 mssql    하창호 2009·08·06 8386
462  VisualC :: 내부적으로 쓰레드를 사용하는 COM 객체를 쓰레드에서 ...    하창호 2009·07·18 4194
461  VisualC :: CDBVariant 의 m_pstring Exception 방...    하창호 2009·07·16 4425
460  QT :: Porting to QBuild  …1  하창호 2009·06·26 3361
459  QT :: OS 에 따른 Build 조건문 예제    하창호 2009·06·26 3384
458  PPC :: PPC DeviceID 가져오기    하창호 2009·06·18 4632
457  PPC :: Serial Number    하창호 2009·06·09 0
456  android :: 안드로이드 android 개발 설정    하창호 2009·05·29 6827
455  android :: 안드로이드 android 설치 관련    하창호 2009·05·29 3778
454  Network :: Hypertext Transfer Protocol -- HTTP...    하창호 2009·05·26 3519
453  Network :: HTTP Tunneling (HTTP Proxy Socket C...    하창호 2009·05·26 4265
452  Network :: Http Tunnel Software    하창호 2009·05·22 4735
451  Network :: Tunneling to circumvent firewall po...    하창호 2009·05·22 3573
450  PPC :: Mobile6에서 구글 메일 사용 하기 위한 프로그램들    하창호 2009·05·21 3278
449  PPC :: 4655 키패드에 조명 설정 레지스트리    하창호 2009·05·19 4182
448  기타 :: M4850 블루투스로 인터넷 연결하기    하창호 2009·05·15 4743
447  VisualC :: CEdit 를 이용한 채팅창 처럼 자동 스크롤 되는 로그...    하창호 2009·05·11 6708
446  기타 :: google calendar sms crack ...ing    하창호 2009·04·30 1
445  VisualC :: ATL COM 쉽게 레지스트리 등록 방법    하창호 2009·04·29 3734
444  VisualC :: OLE Automation Event 사용예제 대신사이보스...    하창호 2009·04·28 7380
443  VisualC :: OLE Automation classes 사용예제    하창호 2009·04·27 6940
442  VisualC :: 소스코드에 DLL 위치 추가하는 방법    하창호 2009·04·27 6375
441  VisualC :: Linker Tools Error LNK2001 에러에 대한 ...    하창호 2009·04·27 4566
440  VisualC :: Capture 하기 예제 캡춰시 상위 화면 보인후 캡춰하...    하창호 2009·04·24 3989
439  VisualC :: DIBAPI 사용시 Bitmap 이미지 크기와 JPEG 이미...    하창호 2009·04·23 4910
438  VisualC :: DIB API 를 이용한 Bitmap 을 jpeg 로 저장하...    하창호 2009·04·22 5461
437  VisualC :: Thread 와 List 를 이용한 Queue 로 버퍼링 ...    하창호 2009·04·22 3733
436  VisualC :: ClickWindow 예제    하창호 2009·04·21 3732
435  VisualC :: 윈도우 이름을 기준으로 하부 윈도우를 찾는 예제    하창호 2009·04·21 4132
 기타 :: WOL Wake On Lan 원격 부팅 만드는 방법    하창호 2009·04·21 11709
433  VisualC :: MAPI 를 이용한 메일 보내기 Sendmail    하창호 2009·04·20 5545
432  VisualC :: 부모 윈도우에서 자식 윈도우 위치로 윈도운 핸들 구하기  …1  하창호 2009·04·16 7833
431  VB :: VB 에서 타이머 사용    하창호 2009·04·13 3433
430  VisualC :: Excel DDE 제어    하창호 2009·04·13 4194
429  VisualC :: 시간을 배열의 Index 로 서로간 변환 하는 함수 최소...    하창호 2009·04·03 3594
428  VisualC :: mysql odbc connection string    하창호 2009·03·26 5826
427  VisualC :: CDBException::m_strStateNativeOrigi...  …1  하창호 2009·03·24 4135
426  VisualC :: Microsoft Excel data type ODBC data...  …1  하창호 2009·03·11 3597
425  VisualC :: CRecordset.GetFieldValue 사용시 CDBVar...    하창호 2009·03·10 4631
424  VisualC :: ini 사용법    하창호 2009·03·09 4387
423  WinCE :: EVC 설치시 REG.VBS 파일 Script Host Error...  …2  하창호 2009·02·24 5039
422  WinCE :: EVC Window Fatal Error 8000002 관련 ...    하창호 2009·02·19 3808
1 [2][3][4][5][6][7][8]
   
Copyright 1999-2018 Zeroboard / skin by GGAMBO
....