欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.NET获取客户端的操作系统版本、浏览器版本和IP地址

程序员文章站 2023-11-22 10:52:16
我们在使用.net做网站的时候,很多情况下需要需要知道客户端的操作系统版本和浏览器版本,怎样获取客户端的操作系统和浏览器版本呢?我们可以通过分析useragent来获取。...

我们在使用.net做网站的时候,很多情况下需要需要知道客户端的操作系统版本和浏览器版本,怎样获取客户端的操作系统和浏览器版本呢?我们可以通过分析useragent来获取。

.net 获取客户端的操作系统

请看下面的代码,我们首先创建一个通过分析useragent来获取操作系统的方法

/// <summary>
/// 获取操作系统的名字
/// </summary>
/// <param name="useragent"></param>
/// <returns></returns>
public static string getosnamebyuseragent(string useragent)
{
 string osversion = "未知";

 if (useragent.contains("nt 10.0"))
 {
 osversion = "windows 10";
 }
 else if (useragent.contains("nt 6.3"))
 {
 osversion = "windows 8.1";
 }
 else if (useragent.contains("nt 6.2"))
 {
 osversion = "windows 8";
 }
 else if (useragent.contains("nt 6.1"))
 {
 osversion = "windows 7";
 }
 else if (useragent.contains("nt 6.1"))
 {
 osversion = "windows 7";
 }
 else if (useragent.contains("nt 6.0"))
 {
 osversion = "windows vista/server 2008";
 }
 else if (useragent.contains("nt 5.2"))
 {
 if (useragent.contains("64"))
 osversion = "windows xp";
 else
 osversion = "windows server 2003";
 }
 else if (useragent.contains("nt 5.1"))
 {
 osversion = "windows xp";
 }
 else if (useragent.contains("nt 5"))
 {
 osversion = "windows 2000";
 }
 else if (useragent.contains("nt 4"))
 {
 osversion = "windows nt4";
 }
 else if (useragent.contains("me"))
 {
 osversion = "windows me";
 }
 else if (useragent.contains("98"))
 {
 osversion = "windows 98";
 }
 else if (useragent.contains("95"))
 {
 osversion = "windows 95";
 }
 else if (useragent.contains("mac"))
 {
 osversion = "mac";
 }
 else if (useragent.contains("unix"))
 {
 osversion = "unix";
 }
 else if (useragent.contains("linux"))
 {
 osversion = "linux";
 }
 else if (useragent.contains("sunos"))
 {
 osversion = "sunos";
 }
 else
 {
 osversion = system.web.httpcontext.current.request.browser.platform;
 }
 return osversion;
}

上面的方法就是通过解析useragent中包含的操作系统字符串信息,返回具体的操作系统和版本,其中request.browser.platform是获得操作系统的内核,如果上面的都不匹配就直接返回操作系统的内核版本,上面的方法可以检测到最新的windows 10,同时可以检测苹果、linux、sunos等主流操作系统。

调用方法我们可以像下面的代码这样写:

复制代码 代码如下:
string systemname = getosnamebyuseragent(system.web.httpcontext.current.request.useragent);

通过传入request的useragent就可以返回操作系统的了。

.net 获取客户端的浏览器版本

.net获取浏览器版本很简单,只需要通过request的browser固有属性即可,如下面的代码

复制代码 代码如下:
string browsername = system.web.httpcontext.current.request.browser.browser + " " + system.web.httpcontext.current.request.browser.version;

.net获取ip地址:

/// <summary>
/// 获取当前客户端ip地址
/// </summary>
/// <returns></returns>
public static string getcurrentuserhostaddress()
{
 string userhostaddress = "";
 userhostaddress = system.web.httpcontext.current.request.servervariables["http_x_forwarded_for"];
 if (string.isnullorempty(userhostaddress))
 {
 //没有代理ip则直接取连接客户端ip 
 userhostaddress = system.web.httpcontext.current.request.servervariables["remote_addr"];
 }
 return userhostaddress;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。