C# 区别浏览器的名称注意的

ExpandedBlockStart.gif 代码
  1  using  System;
  2  using  System.Data;
  3  using  System.Configuration;
  4  using  System.Collections;
  5  using  System.Web;
  6  using  System.Web.Security;
  7  using  System.Web.UI;
  8  using  System.Web.UI.WebControls;
  9  using  System.Web.UI.WebControls.WebParts;
 10  using  System.Web.UI.HtmlControls;
 11  using  System.Diagnostics;
 12  using  System.Text.RegularExpressions;
 13  using  System.Net;
 14  using  System.IO;
 15  using  System.Deployment;
 16  using  System.Management;
 17 
 18 
 19  namespace  SiteMapDemo
 20  {
 21       public   partial   class  WebForm10 : System.Web.UI.Page
 22      {
 23           protected   void  Page_Load( object  sender, EventArgs e)
 24          {
 25 
 26             
 27              HttpBrowserCapabilities browser  =  Request.Browser;
 28               // Google Chrome,Flock,Safari等浏览器无法区别是哪个浏览器名称
 29              Response.Write(browser.Browser.ToString()  +   " </br> " );
 30               // 此方法才可以区别浏览器的名称
 31              Response.Write(Request.ServerVariables[ " http_user_agent " ].ToString());
 32               // 得到浏览器属性Google Chrome浏览器有五個:default,mozilla,gecko,safari,safari1plus
 33               for  ( int  i  =   0 ; i  <  browser.Browsers.Count; i ++ )
 34              {
 35                  Response.Write(browser.Browsers[i].ToString()  +   " </br> " );
 36              }
 37               string  stringMAC  =   "" ;
 38               string  stringIP  =   "" ;
 39              ManagementClass MC  =   new  ManagementClass( " Win32_NetworkAdapterConfiguration " );
 40              ManagementObjectCollection MOC  =  MC.GetInstances();
 41 
 42               foreach  (ManagementObject MO  in  MOC)
 43              {
 44                   if  (( bool )MO[ " IPEnabled " ==   true )
 45                  {
 46                      stringMAC  +=  MO[ " MACAddress " ].ToString();  // 获取网卡的地址
 47                       string [] IPAddresses  =  ( string [])MO[ " IPAddress " ];  // 获取本地的IP地址
 48                       if  (IPAddresses.Length  >   0 )
 49                          stringIP  =  IPAddresses[ 0 ];
 50                      Response.Write(stringMAC  +   " / "   +  stringIP  +   " </br> " );
 51 
 52                  }
 53              }
 54               string  cpuInfo  =   "" ; // cpu序列号
 55              ManagementClass cimobject  =   new  ManagementClass( " Win32_Processor " );
 56              ManagementObjectCollection moc  =  cimobject.GetInstances();
 57               foreach  (ManagementObject mo  in  moc)
 58              {
 59                  cpuInfo  =  mo.Properties[ " ProcessorId " ].Value.ToString();
 60                  Response.Write( " cpu序列号: "   +  cpuInfo.ToString()  +   " </br> " );
 61              }
 62 
 63               // 获取硬盘ID
 64              String HDid;
 65              ManagementClass cimobject1  =   new  ManagementClass( " Win32_DiskDrive " );
 66              ManagementObjectCollection moc1  =  cimobject1.GetInstances();
 67               foreach  (ManagementObject mo  in  moc1)
 68              {
 69                  HDid  =  ( string )mo.Properties[ " Model " ].Value;
 70                  Response.Write( " 硬盘序列号: "   +  HDid.ToString()  +   " </br> " );
 71              }
 72 
 73 
 74               // 获取网卡硬件地址
 75 
 76              ManagementClass mc  =   new  ManagementClass( " Win32_NetworkAdapterConfiguration " );
 77              ManagementObjectCollection moc2  =  mc.GetInstances();
 78               foreach  (ManagementObject mo  in  moc2)
 79              {
 80                   if  (( bool )mo[ " IPEnabled " ==   true )
 81                      Response.Write( " MAC address\t{0} "   +  mo[ " MacAddress " ].ToString()  +   " </br> " );
 82                  mo.Dispose();
 83              }
 84               // 在页面上打印出客户端的网卡物理地址(MAC)
 85              Response.Write( this .GetMac(Request.UserHostAddress.ToString()));
 86          }
 87           ///   <summary>
 88           ///  获取远程客户端的网卡物理地址(MAC)
 89           ///   </summary>
 90           ///   <param name="IP"></param>
 91           ///   <returns></returns>
 92           public   string  GetMac( string  IP)    // para IP is the client's IP
 93          {
 94               string  dirResults  =   "" ;
 95              ProcessStartInfo psi  =   new  ProcessStartInfo();
 96              Process proc  =   new  Process();
 97              psi.FileName  =   " nbtstat " ;
 98              psi.RedirectStandardInput  =   false ;
 99              psi.RedirectStandardOutput  =   true ;
100              psi.Arguments  =   " -A  "   +  IP;
101              psi.UseShellExecute  =   false ;
102              proc  =  Process.Start(psi);
103              dirResults  =  proc.StandardOutput.ReadToEnd();
104              proc.WaitForExit();
105              dirResults  =  dirResults.Replace( " \r " "" ).Replace( " \n " "" ).Replace( " \t " "" );
106 
107              Regex reg  =   new  Regex( " Mac[ ]{0,}Address[ ]{0,}=[ ]{0,}(?<key>((.)*?))__MAC " , RegexOptions.IgnoreCase  |  RegexOptions.Compiled);
108              Match mc  =  reg.Match(dirResults  +   " __MAC " );
109 
110               if  (mc.Success)
111              {
112                   return  mc.Groups[ " key " ].Value;
113              }
114               else
115              {
116                  reg  =   new  Regex( " Host not found " , RegexOptions.IgnoreCase  |  RegexOptions.Compiled);
117                  mc  =  reg.Match(dirResults);
118                   if  (mc.Success)
119                  {
120                       return   " Host not found! " ;
121                  }
122                   else
123                  {
124                       return   "" ;
125                  }
126              }
127          }
128      }
129 
130 
131  }
132 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值