我有一个 ASP.Net 网站,我希望能够在下面了解有关浏览我网站的人的信息。
- 登录操作系统的用户名。
- 确切的操作系统(操作系统类型 - Windows、Mac 等:操作系统版本)。
- MAC地址
- 客户端机器的 IP 地址。
我的网站是一个高度安全的网站,如果需要访问该网站,我可以让用户安装 activex 和/或一些小程序。
请帮助我这样做的最佳方式。
我有一个 ASP.Net 网站,我希望能够在下面了解有关浏览我网站的人的信息。
我的网站是一个高度安全的网站,如果需要访问该网站,我可以让用户安装 activex 和/或一些小程序。
请帮助我这样做的最佳方式。
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
从浏览器(或任何第三方库)中获取您想要的内容......