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), 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);
}
}</pre>
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有