C# 在指定的IP地址中获得一个设备的MAC(物理)地址
程序员文章站
2022-03-06 16:52:33
...
using System.Net; using System.Net.NetworkInformation; ////// Holds utilities for working with networks, Ethernet, etc. /// 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); ////// Gets the MAC address ( /// The remote IP address. ///) associated with the specified IP. /// The remote machine's MAC address. 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); } } [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); } }
上一篇: C#创建ini文件、读取值、修改值
下一篇: Java的第三大特性--多态的理解