C# 在指定的IP地址中获得一个设备的MAC(物理)地址
发布时间:2020-12-15 17:51:53 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 using System.Net;using System.Net.NetworkInformation;/// summary/// Holds utilities for working with networks,Ethernet,etc./// /summarypubli
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 using System.Net; using System.Net.NetworkInformation; /// <summary> /// Holds utilities for working with networks,Ethernet,etc. /// </summary> public static class NetworkUtils { // http://www.codeproject.com/KB/IP/host_info_within_network.aspx [System.Runtime.InteropServices.DllImport("iphlpapi.dll",ExactSpelling = true)] static extern int SendARP(int DestIP,int SrcIP,byte[] pMacAddr,ref int PhyAddrLen); /// <summary> /// Gets the MAC address (<see cref="PhysicalAddress"/>) associated with the specified IP. /// </summary> /// <param name="ipAddress">The remote IP address.</param> /// <returns>The remote machine's MAC address.</returns> public static PhysicalAddress GetMacAddress(IPAddress ipAddress) { const int MacAddressLength = 6; int length = MacAddressLength; var macBytes = new byte[MacAddressLength]; SendARP(BitConverter.ToInt32(ipAddress.GetAddressBytes(),0),macBytes,ref length); return new PhysicalAddress(macBytes); } } [TestClass()] public class NetworkUtilsTests { [TestMethod()] public void GetMacAddress_BroadcastIP_NonzeroMac() { IPAddress ipAddress = IPAddress.Broadcast; PhysicalAddress actual = NetworkUtils.GetMacAddress (ipAddress); Console.WriteLine(actual.ToString()); Assert.AreNotEqual(PhysicalAddress.None,actual); } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |