下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
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); } }
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。