vs2003+c#网页获取MAC地址的实现
第一步:添加引用
在开发平台中搜索到dll文件System.Management.dll,将它复制到项目的bin目录下
添加引用时找到BIN目录下的System.Management.dll,将它添加进来
在命名空间引用中添加
using System.Diagnostics;
using System.Management;
第二步:构造函数
#region 获取客户端ip
public string ip()
{
return System.Web.HttpContext.Current.Request.UserHostAddress;
}
#endregion
#region 获得客户端mac地址
public string GetCustomerMac(string IP) //para IP is the client's IP
{
if (IP == "127.0.0.1")
{
return GetLocalMac();
}//"00-04-61-5C-31-52";//00-0F-1F-C6-B2-B3
else
{
string dirResults = "";
ProcessStartInfo psi = new ProcessStartInfo();
Process proc = new Process();
psi.FileName = "nbtstat";
psi.RedirectStandardInput = false;
psi.RedirectStandardOutput = true;
psi.Arguments = "-A " + IP;
psi.UseShellExecute = false;
proc = Process.Start(psi);
dirResults = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
dirResults = dirResults.Replace("\r", "").Replace("\n", "").Replace("\t", "");
int i = dirResults.LastIndexOf("=");
dirResults = dirResults.Substring(i + 2, 17);
if (dirResults.IndexOf("本地连接") != -1)
{ dirResults = "没有得到mac"; }
return dirResults;
}
}
#endregion
#region 获得服务器端mac地址
public static string GetLocalMac()
{
ManagementClass adapters = new ManagementClass("Win32_NetworkAdapterConfiguration");
string MACAddress = "unknown";
foreach (ManagementObject adapter in adapters.GetInstances())
{
if ((bool)adapter["IPEnabled"] == true)
{
MACAddress = adapter.Properties["MACAddress"].Value.ToString();
break;
}
}
return MACAddress.Replace(":", "-");
}
#endregion
第三步:更改IE浏览器中关于控件的设置使得IE浏览器进行MAC地址获取时可以被允许