728x90
반응형
728x170
▶ WOLClient.cs
using System.Globalization;
using System.Net;
using System.Net.Sockets;
namespace TestProject
{
/// <summary>
/// WOL 클라이언트
/// </summary>
public class WOLClient : UdpClient
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - WOLClient()
/// <summary>
/// 생성자
/// </summary>
public WOLClient() : base()
{
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 깨우기 - Wake(macAddress)
/// <summary>
/// 깨우기
/// </summary>
/// <param name="macAddress">MAC 주소</param>
public void Wake(string macAddress)
{
WOLClient client = new WOLClient();
client.Connect(new IPAddress(0xffffffff), 0x2fff);
client.SetBrodcastMode();
int count = 0;
byte[] byteArray = new byte[1024];
for(int x = 0; x < 6; x++)
{
byteArray[count++] = 0xff;
}
for(int x = 0; x < 16; x++)
{
int i = 0;
for(int y = 0; y < 6; y++)
{
byteArray[count++] = byte.Parse(macAddress.Substring(i, 2), NumberStyles.HexNumber);
i += 2;
}
}
client.Send(byteArray, 1024);
}
#endregion
////////////////////////////////////////////////////////////////////////////////////////// Private
#region 브로드캐스트 모드 설정하기 - SetBrodcastMode()
/// <summary>
/// 브로드캐스트 모드 설정하기
/// </summary>
public void SetBrodcastMode()
{
if(Active)
{
Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 0);
}
}
#endregion
}
}
▶ Program.cs
namespace TestProject
{
/// <summary>
/// 프로그램
/// </summary>
class Program
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Private
#region 프로그램 시작하기 - Main(
/// <summary>
/// 프로그램 시작하기
/// </summary>
private static void Main()
{
WOLClient client = new WOLClient();
client.Wake("00-15-5D-84-8C-37");
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] 닷넷 프레임워크 소스 코드에서 닷넷 프레임워크 버전 일괄 변경하기 (0) | 2021.11.29 |
---|---|
[C#/COMMON] Internet Explorer의 브라우저 에뮬레이션 모드 설정하기 (0) | 2021.11.23 |
[C#/COMMON] Process 클래스 : CloseMainWindow/Kill 메소드를 사용해 아웃룩 프로세스 제거하기 (0) | 2021.11.23 |
[C#/COMMON] 누겟 설치 : Newtonsoft.Json (0) | 2021.11.23 |
[C#/COMMON] WebUtility 클래스 : UrlEncode 정적 메소드를 사용해 URL 인코딩하기 (0) | 2021.11.21 |
[C#/COMMON] UdpClient 클래스 : WOL(Wake On LAN) 기능 사용하기 (0) | 2021.11.17 |
[C#/COMMON] HttpClient 클래스 : 멀티 파트 폼 업로드하기 (0) | 2021.11.16 |
[C#/COMMON] HttpClient 클래스 : POST 요청 열거 가능형 구하기 (0) | 2021.11.12 |
[C#/COMMON] HttpClient 클래스 : POST 요청 객체 구하기 (0) | 2021.11.12 |
[C#/COMMON] HttpWebRequest 클래스 : POST 요청 열거 가능형 구하기 (0) | 2021.11.11 |
[C#/COMMON] HttpWebRequest 클래스 : POST 요청 객체 구하기 (0) | 2021.11.11 |
댓글을 달아 주세요