0

我有一个 ASP.Net 网站,我希望能够在下面了解有关浏览我网站的人的信息。

  1. 登录操作系统的用户名。
  2. 确切的操作系统(操作系统类型 - Windows、Mac 等:操作系统版本)。
  3. MAC地址
  4. 客户端机器的 IP 地址。

我的网站是一个高度安全的网站,如果需要访问该网站,我可以让用户安装 activex 和/或一些小程序。

请帮助我这样做的最佳方式。

4

1 回答 1

1

1 - 登录操作系统的用户名

这仅在您使用 WIndows Forms 作为身份验证方法时可用,如果您使用 Forms,您可以通过登录帐户轻松获取其名称/用户

2 - 中的确切操作系统(操作系统类型 - Windos、Mac 等:操作系统版本)。

我们称之为浏览器代理,您可以通过在 javascript 中使用来获取它:

navigator.userAgent

3 - Mac 地址

您只能获取您自己的服务器的 Mac 地址,即您托管网站的服务器,并且您可以获得与服务器拥有的网络设备一样多的网络设备,记住Mac 地址不是唯一的

4 - 客户端机器的 IP 地址。

仅使用 javascript 无法获得此信息,您需要使用您的编程语言,您应该使用它来获取真实的 IP 地址:

string ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if(ip == "") { 
    ip = Request.ServerVariables["REMOTE_ADDR"]; 
}

总之,使用 jQuery 很简单:

<%
    string ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    if(ip == "") { ip = Request.ServerVariables["REMOTE_ADDR"]; }
%>
<script type="text/javascript">

  $(function() {

    var ipAddress = '<% = ip %>',
        browser = navigator.userAgent,
        username = <% = Session["username"] %>;

    // now send the data back to your server, if using jQuery, just do:
    $.get("/login-user.aspx", { 
            ip: ipAddress, 
             browser: browser, 
             user: username 
          }, function(data) {
             // use this if you return anything as a response             
          });
   });    
</script>

然后,您可以使用http://UserAgentString.com / API 来解析您的用户代理字符串,或使用该对象navigator从浏览器(或任何第三方库)中获取您想要的内容......

于 2012-06-01T10:29:55.473 回答