Microsoft MVP성태의 닷넷 이야기
.NET : 32. Wake-On-Lan C# 코드 [링크 복사], [링크+제목 복사]
조회: 11559
글쓴 사람
정성태 (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)
95정성태2/23/20074970.NET : 20. .Net Zip Library/Utility updates and fixes
94정성태2/23/20074765COM : 2. VC++ - OneNote Addin 제작
93정성태2/3/20075594공통 코딩 규약 : 2. 프로퍼티와 공용 필드에 대한 선택 [1]
92정성태2/1/20074745공통 코딩 규약 : 1. HMACSHA512 / HMACSHA384 클래스 사용시 주의사항
91정성태1/27/20075029.NET : 19. HTML InnerText 구하기
90정성태1/27/20076677Vista : 3. 현재 사용자가 관리자 그룹에 속해 있는지 결정하는 코드
89정성태1/24/20074202.NET : 18. ASP.NET - AspNetHostingPermissionLevel 알아내기
88정성태1/22/20074474.NET : 17. 지역화된 폰트명 구하기
87정성태1/21/20075819.NET : 16. 클립보드 - HTML 텍스트 복사/붙여넣기
86정성태1/21/20074723.NET : 15. BinaryFormatter 에서의 진행 상태바 구현
85정성태1/20/20075662COM : 1. IE 7의 다중 탭을 이용한 네비게이션 [1]
84정성태1/19/20074566.NET : 14. 웹 서비스를 이용한 머신 간의 클립보드 공유
83정성태1/12/20074500.NET : 13. SafeHandles 를 적용한 GetProcAddress 래퍼
82정성태1/12/20074203.NET : 12. Cardspace 를 위한 ASP.NET 서버 컨트롤파일 다운로드1
81정성태1/12/20074533.NET : 11. 파일 확장자에 따른 아이콘 그려주는 HttpHandler [2]파일 다운로드1
80정성태1/10/20075253SQL : 1. SQL 2005 - 대소문자 구분없이 검색하도록 구현 [1]
79정성태1/10/20074147.NET : 10. Config 설정을 .NET Class 로 매핑
78정성태1/3/20074609.NET : 9. 텍스트 꾸미는 코드
77정성태12/13/20064803.NET : 8. C# - VARIANT 관련 마샬링 코드
76정성태12/6/20065378.NET : 7. 휴대 장치 열람하는 코드
75정성태12/6/20064478.NET : 6. 웹 서비스 메서드에 대해 완료 제한 시간 설정하는 방법
74정성태11/6/20064543.NET : 5. How to Decrypt an ASP.NET Encrypted Data
73정성태11/2/20065422.NET : 4. 콘솔 프로그램 실행시간 측정
72정성태11/1/20064687.NET : 3. System Monitoring 예제
70정성태11/1/20064240.NET : 2. System.Net.NetworkInformation.Ping 클래스 사용 예제
69정성태10/27/20064543.NET : 1. Typed DataSet 에서의 ExcludeSchema 사용
1  2  3  4  [5]  6  7  8