برای بدست آوردن مک آدرس از طریق آی پی آدرس می توانید از کد زیر استفاده کنید
کتابخانه های مورد نیاز
using System.Net;
using System.Net.NetworkInformation;
شروع کد
[System.Runtime.InteropServices.DllImport("iphlpapi.dll", ExactSpelling = true)]
static extern int SendARP(int DestIP, int SrcIP, byte[] pMacAddr, ref int PhyAddrLen);
این تابع را هنگام نیاز به تبدیل صدا بزنید
public static PhysicalAddress GetMacAddress(IPAddress ipAddress)
{
const int MacAddressLength = 6;
int length = MacAddressLength;
var macBytes = new byte[MacAddressLength];
SendARP(BitConverter.ToInt32(ipAddress.GetAddressBytes(), 0), 0, macBytes, ref length);
return new PhysicalAddress(macBytes);
}
پایان
حال برای استفاده فقط کافیست که به شکل زیر تابع را فرا بخوانید
IPAddress ipaddress = IPAddress.Parse("192.168.1.1");
PhysicalAddress mac = GetMacAddress(ipaddress);
شاید شما تنها نام سیستم را بدانید و آدرس آی پی آن متغییر باشد آنگاه بهتر است به شکل زیر عمل کنید
string ipaddr = Dns.GetHostByName("pcname").AddressList[0].ToString();
IPAddress ipaddress = IPAddress.Parse(ipaddr);
PhysicalAddress mac = GetMacAddress(ipaddress);