做一个,比如一天内只能登陆5次这个需求!!!要在网络中标识一个用户,我想根据记录用户登陆的ip地址及电脑名来做!!!获取获取客户端的mac地址!!!请问如何获取客户端的这些信息???

解决方案 »

  1.   

    可以获取客户端IP和MAC地址,不知道怎么获取客户端的电脑名称。
      

  2.   

    客户端IP好说,
    客户端的计算机名和Mac地址需要插件的支持。确认客户允许安装插件。
    网上有很多示例<HTML>
     <HEAD>
      <TITLE>WMI Scripting HTML</TITLE>
    <META http-equiv=Content-Type content="text/html; charset=gb2312">
    <SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>
    document.forms[0].txtMACAddr.value=unescape(MACAddr);
    document.forms[0].txtIPAddr.value=unescape(IPAddr);
    document.forms[0].txtDNSName.value=unescape(sDNSName);
    //document.formbar.submit();
    </SCRIPT><SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>
    if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
    {
    if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
    MACAddr = objObject.MACAddress;
    if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")
    IPAddr = objObject.IPAddress(0);
    if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
    sDNSName = objObject.DNSHostName;
    }
    </SCRIPT><META content="Microsoft FrontPage 4.0" name=GENERATOR>
     </HEAD>
    <BODY>
    <OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
    <OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
    <SCRIPT language=JScript>
    var service = locator.ConnectServer();
    var MACAddr ;
    var IPAddr ;
    var DomainAddr;
    var sDNSName;
    service.Security_.ImpersonationLevel=3;
    service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
    </SCRIPT><FORM id=formfoo name=formbar action= method=post>
     <INPUT value=""  name=txtMACAddr> 
     <INPUT value=""  name=txtIPAddr> 
     <INPUT value=""  name=txtDNSName> 
    </FORM>
    </BODY>
    </HTML>
      

  3.   

    activex控件,考虑用户的操作能力和安全性,一般不可取
    重新选择其他方法,记录用户一天登录次数
    获取IP
    http://topic.csdn.net/u/20090617/11/8f0432b6-84ee-49da-a55f-86b3d343ab8b.html
      

  4.   

    获取电脑名的JS代码,不过要求客户端IE的安全级别配置非常低,好自为之function compname() { 
        var wshNetwork = new ActiveXObject("WScript.Network");   
        var computername = wshNetwork.ComputerName ; 
                  
    }http://msdn.microsoft.com/en-us/library/s6wt333f(VS.85).aspx
      

  5.   


    是这样的吗??
    [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);
                Int32 lhost = inet_addr("");
                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("");
                    else
                        Response.Write("" + 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));
                        }
                    }
                }        }
            catch (Exception err)
            {
                Response.Write(err.Message);
            }
        }我发布网站后没有获取到客户端的mac地址。。
    并且在同一个局域往里面我们现实的ip地址是一样的。。我想做的是即使在一个局域网里面也可以区别出不同的用户,该怎么做???谢谢~
      

  6.   

    引入了民命空间using System.Runtime.InteropServices;
      

  7.   

    其实cookie足够了,真的想搞破坏的人这些东西都能伪造没用的
    一般人只要你提示写清楚了就懒得去登了
      

  8.   

    加我QQ286455502,我告诉你
    http://item.taobao.com/item.htm?id=9102118368
      

  9.   

    只能获取 ip,电脑名和 mac 地址不能
      

  10.   

      #region 获取IP
            /// <summary>
            /// 获取IP地址
            /// </summary>
            public static string IPAddress()
            {
                string userIP;
                // HttpRequest Request = HttpContext.Current.Request;
                HttpRequest Request = HttpContext.Current.Request; // ForumContext.Current.Context.Request;
                // 如果使用代理,获取真实IP
                if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != "")
                    userIP = Request.ServerVariables["REMOTE_ADDR"];
                else
                    userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
                if (userIP == null || userIP == "")
                    userIP = Request.UserHostAddress;
                return userIP;        }
            #endregion
      

  11.   


    没有错。过去有些宽带提供商用来控制客户最多只能有几台电脑上网(即使在自己家里的路由器后边),使用的就是在他们的路由器上为客户的网络访问加入cookie来判断。
      

  12.   

    cookie容易被清除。但是不懂的用户还是很多的。
      

  13.   

    JS 可以获取MAC地址, 但是你得让用户调低IE安全,或者做插件.  要不就cookie. 没有什么别的办法了
      

  14.   

        public static string GetIP()
        {
            // 优先取得代理IP 
            string userHostAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            if (string.IsNullOrEmpty(userHostAddress))
            {
                //没有代理IP则直接取客户端IP 
                userHostAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            }
            if ((userHostAddress != null) && !(userHostAddress == string.Empty))
            {
                return userHostAddress;
            }
            return "0.0.0.0";
        }
      

  15.   


    和20楼的代码不是一样的吗??#region 获取IP
      /// <summary>
      /// 获取IP地址
      /// </summary>
      public static string IPAddress()
      {
      string userIP;
      // HttpRequest Request = HttpContext.Current.Request;
      HttpRequest Request = HttpContext.Current.Request; // ForumContext.Current.Context.Request;
      // 如果使用代理,获取真实IP
      if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != "")
      userIP = Request.ServerVariables["REMOTE_ADDR"];
      else
      userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
      if (userIP == null || userIP == "")
      userIP = Request.UserHostAddress;
      return userIP;  }
      #endregion