现在的位置: 首页 > 综合 > 正文

vs2003+c#网页获取MAC地址的实现

2012年02月10日 ⁄ 综合 ⁄ 共 1541字 ⁄ 字号 评论关闭

第一步:添加引用

在开发平台中搜索到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地址获取时可以被允许

【上篇】
【下篇】

抱歉!评论已关闭.