Microsoft MVP성태의 닷넷 이야기
.NET : 32. Wake-On-Lan C# 코드 [링크 복사], [링크+제목 복사]
조회: 11557
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Wake-On-Lan Client with C#
; http://blogs.msdn.com/knom/archive/2008/12/31/wake-on-lan-client-with-c.aspx

Lan 카드에 신호를 보내서 전원을 켜는 기능이 있지요.
바로 그 기능을 활성화시키기 위한 패킷을 보내는 소스 코드입니다.








[최초 등록일: ]
[최종 수정일: 7/9/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

비밀번호

댓글 작성자
 



2009-01-01 11시45분
IP Address Calculations with C# (Subnetmasks, Networks, …)
; https://docs.microsoft.com/en-us/archive/blogs/knom/ip-address-calculations-with-c-subnetmasks-networks

IP/subnetmask를 알고 있는 상태에서 Network address와 broadcast address를 반환해주는 확장 메서드 소스 코드가 있습니다.

public static class IPAddressExtensions
{
    public static IPAddress GetBroadcastAddress(this IPAddress address, IPAddress subnetMask)
    {
        byte[] ipAdressBytes = address.GetAddressBytes();
        byte[] subnetMaskBytes = subnetMask.GetAddressBytes();

        if (ipAdressBytes.Length != subnetMaskBytes.Length)
            throw new ArgumentException("Lengths of IP address and subnet mask do not match.");

        byte[] broadcastAddress = new byte[ipAdressBytes.Length];
        for (int i = 0; i < broadcastAddress.Length; i++)
        {
            broadcastAddress[i] = (byte)(ipAdressBytes[i] | (subnetMaskBytes[i] ^ 255));
        }
        return new IPAddress(broadcastAddress);
    }

    public static IPAddress GetNetworkAddress(this IPAddress address, IPAddress subnetMask)
    {
        byte[] ipAdressBytes = address.GetAddressBytes();
        byte[] subnetMaskBytes = subnetMask.GetAddressBytes();

        if (ipAdressBytes.Length != subnetMaskBytes.Length)
            throw new ArgumentException("Lengths of IP address and subnet mask do not match.");

        byte[] broadcastAddress = new byte[ipAdressBytes.Length];
        for (int i = 0; i < broadcastAddress.Length; i++)
        {
            broadcastAddress[i] = (byte)(ipAdressBytes[i] & (subnetMaskBytes[i]));
        }
        return new IPAddress(broadcastAddress);
    }

    public static bool IsInSameSubnet(this IPAddress address2, IPAddress address, IPAddress subnetMask)
    {
        IPAddress network1 = address.GetNetworkAddress(subnetMask);
        IPAddress network2 = address2.GetNetworkAddress(subnetMask);

        return network1.Equals(network2);
    }
}
kevin25

1  2  3  4  5  6  [7]  8 
NoWriterDateCnt.TitleFile(s)
43정성태7/17/20035756탐색기 Namespace Extension 컨테이너 (VC 6.0, ATL) 2002.03.24파일 다운로드1
42정성태7/17/20034278KBManager WebBand (VC 6.0, ATL/Script) 2001.10.01파일 다운로드1
41정성태7/17/20034347UrlMonDownload (VC 6.0, ATL) 2001.06.16파일 다운로드1
40정성태7/17/20034296IE 북마크 임포트 (VC 6.0, ATL, MFC 지원) 2001.01.20파일 다운로드1
39정성태7/17/20034867MsIE.exe (VC 6.0, ATL, HTML Parser 로서의 IHTMLDocument2 이용 및 IE 보안설정) 2000.11.23파일 다운로드1
38정성태7/17/20034574EnumIE.exe (VC 6.0, ATL, 현재 사용 중인 IE에 접속) 2000.10.24파일 다운로드1
37정성태7/17/20034318ReuseIE.exe (VC ++ 6,0, Internet Explorer 재사용) 2000.04.17파일 다운로드1
36정성태7/17/20033928RemoteViewer dll (VC ++ 6.0, ATL) 2000.03.13파일 다운로드1
35정성태7/17/20034231IESpy dll (VC ++ 6.0, ATL) 2000.02.28파일 다운로드1
34정성태7/17/20033967Bmp2Gif 콘트롤 (VC ++ 6.0, MFC) 2000.02.28파일 다운로드1
33정성태7/17/20033783Gif89a 콘트롤 (VC ++ 6.0, ATL) 2000.02.28파일 다운로드1
32정성태7/17/20034290이미지 4버튼 (VC ++ 6.0, ATL) 2000.02.28파일 다운로드1
31정성태7/17/20033909이미지 홀더 (VC ++ 6.0, ATL) 2000.02.28파일 다운로드1
30정성태7/17/20034036이미지 뷰어 (VC ++ 6.0, ATL) 2000.02.28파일 다운로드1
29정성태7/17/20033818ChatClient (VC ++ 6.0, MFC) 1999.09.09파일 다운로드1
28정성태7/17/20035219Winsock2 SPI : LSP 예제 (VC ++ 6.0) 2001.08.07파일 다운로드1
27정성태7/17/20034324Echo Services Server (VC ++ 6.0, ATL Service) 2001.01.07파일 다운로드1
26정성태7/17/20037351FTP Client (VC ++ 6.0, MFC) 1999.09.14파일 다운로드1
25정성태7/17/20033718모뎀 정보를 알아내는 클래스 (VC ++ 6.0, MFC) 1999.09.12파일 다운로드1
24정성태7/17/20038445Ping (VC ++ 6.0, MFC, CSocket Class) 1999.09.09 [1]파일 다운로드1
23정성태7/21/20037409ChatServer / ChatClient (VC ++ 6.0, MFC, Win32 API Socket) 1999.08.01파일 다운로드2
22정성태7/17/20033879성능 객체 카운터 (VC 6.0, Win32) 2001.07.07파일 다운로드1
21정성태7/17/20033904StringSplit 클래스 (VC++6.0, Win32) 2000.02.28파일 다운로드1
20정성태7/17/20034170SQLDirect 클래스 (VC++6.0, Win32) 2000.02.28파일 다운로드1
19정성태7/17/20033572ImeControl 클래스 (VC++6.0, Win32) 2000.02.28파일 다운로드1
18정성태7/17/20033999RegistryEx 클래스 (VC++6.0, Win32) 2000.02.28파일 다운로드1
1  2  3  4  5  6  [7]  8