첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
본 블로그는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 블로그 콘텐츠 향상을 위해 쓰여집니다.

728x90
반응형
728x170

▶ MAC 주소 구하기 예제

string macAddress = GetMACAddress("192.168.29.196"));

 

728x90

 

▶ MAC 주소 구하기

using System;
using System.Net;
using System.Runtime.InteropServices;

#region ARP 보내기 - SendARP(destinationIPValue, sourceIPValue, physicalAddressArray, physicalAddresArrayLength)

/// <summary>
/// ARP 보내기
/// </summary>
/// <param name="destinationIPValue">목적 IP 값</param>
/// <param name="sourceIPValue">소스 IP 값</param>
/// <param name="physicalAddressArray">물리적 주소 배열</param>
/// <param name="physicalAddresArrayLength">물리적 주소 배열 길이</param>
/// <returns>처리 결과</returns>
[DllImport("iphlpapi.dll", ExactSpelling = true)]
private static extern int SendARP(int destinationIPValue, int sourceIPValue, byte[] physicalAddressArray, ref uint physicalAddresArrayLength);

#endregion
#region MAC 주소 구하기 - GetMACAddress(ipAddressString)

/// <summary>
/// MAC 주소 구하기
/// </summary>
/// <param name="ipAddressString">IP 주소 문자열</param>
/// <returns>MAC 주소</returns>
public string GetMACAddress(string ipAddressString)
{
    IPAddress destinationIPAddress = IPAddress.Parse(ipAddressString);
 
    byte[] destinationIPAddressByteArray       = new byte[6];
    uint   destinationIPAddressByteArrayLength = (uint)destinationIPAddressByteArray.Length;
 
    int destinationIPValue = BitConverter.ToInt32(destinationIPAddress.GetAddressBytes(), 0);

    int returnCode = SendARP(destinationIPValue, 0, destinationIPAddressByteArray, ref destinationIPAddressByteArrayLength);

    if(returnCode != 0)
    {
        return null;
    }
 
    string[] destinationIPAddressStringArray = new string[(int)destinationIPAddressByteArrayLength];

    for(int i = 0; i < destinationIPAddressByteArrayLength; i++)
    {
        destinationIPAddressStringArray[i] = destinationIPAddressByteArray[i].ToString("X2");
    }
 
    string maxAddress = string.Join(":", destinationIPAddressStringArray);

    return maxAddress;
}

#endregion
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요