■ 브로드캐스트 주소 구하기

----------------------------------------------------------------------------------------------------

using System;

using System.Net;

 

#region 브로드캐스트 주소 구하기 - GetBroadcastAddress(ipAddress, subnetMask)

 

/// <summary>

/// 브로드캐스트 주소 구하기

/// </summary>

/// <param name="ipAddress">IP 주소</param>

/// <param name="subnetMask">서브넷 마스크</param>

/// <returns>브로드캐스트 주소</returns>

public IPAddress GetBroadcastAddress(this IPAddress ipAddress, IPAddress subnetMask)

{

    byte[] ipAddressByteArray  = ipAddress.GetAddressBytes();

    byte[] subnetMaskByteArray = subnetMask.GetAddressBytes();

 

    if(ipAddressByteArray.Length != subnetMaskByteArray.Length)

    {

        throw new ArgumentException("IP 주소와 서브넷 마스크의 길이가 일치하지 않습니다.");

    }

 

    byte[] broadcastAddressByteArray = new byte[ipAddressByteArray.Length];

 

    for(int i = 0; i < broadcastAddressByteArray.Length; i++)

    {

        broadcastAddressByteArray[i] = (byte)(ipAddressByteArray[i] | (subnetMaskByteArray[i] ^ 255));

    }

 

    return new IPAddress(broadcastAddressByteArray);

}

 

#endregion

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker

댓글을 달아 주세요