问:有谁知道使用ASP.Net / C#获取客户端PC的MAC地址的可靠方法。我正在使用框架3.5。
下面是我在本地/ IIS上正常使用的代码。但这在具有完全信任级别的站点上有效。但是不适用于中等信任级别。
<system.web>
<trust level =“ Medium”>
</ trust> </ system.web> </ p>
<p>公共字符串GetMACAddress()
{
NetworkInterface [] nics = NetworkInterface.GetAllNetworkInterfaces();
字符串sMacAddress = string.Empty;
foreach(NIC中的NetworkInterface适配器)
{
如果(sMacAddress == String.Empty)//仅从第一张卡返回MAC地址<br>
{
IPInterfaceProperties属性= adapter.GetIPProperties();
sMacAddress = adapter.GetPhysicalAddress()。ToString();
}
} return sMacAddress;
}
有人可以为我提供一种获取客户端Mac地址的替代方法吗
答:私有静态字符串getMacAddress(string distIP)
{
IP地址dIP = IPAddress.Parse(distIP); //目标IP地址
byte [] macAddr =新的byte [6];
uint macAddrLen =(uint)macAddr.Length;
如果(SendARP(BitConverter.ToInt32(dIP.GetAddressBytes(),0),0,macAddr,ref macAddrLen)!= 0)
抛出新的InvalidOperationException(“ SendARP失败。”);
string [] str =新字符串[(int)macAddrLen];
对于(int i = 0; i <macAddrLen; i ++)
str [i] = macAddr [i] .ToString(“ x2”);
返回string.Join(“-”,str);
}