asp.net获取客户端的MAC(网卡地址)

来源:互联网 发布:手机淘宝联盟链接转换 编辑:程序博客网 时间:2024/05/16 01:53


[DllImport("Iphlpapi.dll")] 

      private static extern int SendARP(Int32 dest,Int32 host,ref Int64 mac,ref Int32 length); 
      [DllImport("Ws2_32.dll")]
      private static extern Int32 inet_addr(string ip);

      private void Page_Load(object sender, System.EventArgs e)
      {
           try
           {
                string userip=Request.UserHostAddress;
                string strClientIP = Request.UserHostAddress.ToString().Trim();
                Int32 ldest = inet_addr(strClientIP); //目的地的ip 
                Int64 macinfo = new Int64(); 
                Int32 len = 6; 
                int res = SendARP(ldest,0, ref macinfo, ref len);
                string mac_src=macinfo.ToString("X");
                if(mac_src == "0")
                {
                    if (userip == "127.0.0.1")
                    {
                        Response.Write("正在访问Localhost!");
                    }
                    else
                    {
                        Response.Write("欢迎来自IP为" + userip + "的朋友!" + "<br>");
                    }
                     return;
                }

                while(mac_src.Length<12)
                {
                    mac_src = mac_src.Insert(0,"0");
                }

                string mac_dest="";

                for(int i=0;i<11;i++)
                {
                     if (0 == (i % 2))
                     {
                          if ( i == 10 )
                          {
                                mac_dest = mac_dest.Insert(0,mac_src.Substring(i,2));
                          }
                          else
                          {
                                mac_dest ="-" + mac_dest.Insert(0,mac_src.Substring(i,2));
                          }
                     } 
                }

                Response.Write ("欢迎来自IP为"+userip+ "<br>" + ",MAC地址为"+mac_dest+"的朋友!" 

                 +   "<br>");
           }
           catch(Exception err) 
           { 
                Response.Write(err.Message);
           }
      }
0 0
原创粉丝点击