您的位置:首页 > 其它

如何获取客户IE统计信息

2007-01-12 16:39 274 查看
namespace xxxx.cccc
{

 public class sitecounter : System.Web.UI.UserControl
 {
  public string VisitedIP;//获取IP
  public  string VisitedAddress;//获取地址
  public  string VisitedIplocal;//获取上网方式
  public string VisitedMethod;//获取浏览途径
  public string VisitedRefer;//获取上次访问URL
  public string VisitedIe;//获取IE版本
  public string VisitedSystem;//获取操作系统
  public AboutCounter counterabout=new AboutCounter();
  public int AddResult;
  public int EditResult;
  public int Cyear;
  public int Cmonth;
  public int Cday;
  public int CountMonth;
  private void Page_Load(object sender, System.EventArgs e)
  {
   if (Request.Cookies["havecount"]==null)
   {    
    Response.Cookies["havecount"].Value="yes";     
    //获取用户真实IP
    if(Request.ServerVariables["HTTP_VIA"]!=null)
    { 
     VisitedIP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); 
    }
    else
    { 
     if (Request.ServerVariables["HTTP_VIA"]!=null)
     { 
      VisitedIP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); 
     }
     else
     { 
      VisitedIP=Request.ServerVariables["REMOTE_ADDR"].ToString(); 
     } 
      
    }
    //end 已经获取VisitedIP
    //根据IP判断来自何处
    StringBuilder strResult = new StringBuilder();
    string[] strip = VisitedIP.Split('.');
    foreach (string strips in strip)
    { 
     if (strips.Length==1)
     {
      strResult.Append("00");
      strResult.Append(strips);
      strResult.Append(".");
     }
     if (strips.Length==2)
     {
      strResult.Append("0");
      strResult.Append(strips);
      strResult.Append(".");
     }
     if (strips.Length==3)
     {      
      strResult.Append(strips);
      strResult.Append(".");
     }
    }    
    string finalip=strResult.ToString().Substring(0,15).Trim();          
    int pid=(int)counterabout.SelectUserIplocalA(finalip);
    if (pid!=0)
    {
     DataSet dsaddress=new DataSet();
     dsaddress=counterabout.SelectUserIplocalD("Count_Iplocal",finalip);
     VisitedAddress=dsaddress.Tables["Count_Iplocal"].Rows[0][0].ToString();
     VisitedIplocal=dsaddress.Tables["Count_Iplocal"].Rows[0][1].ToString();     
    }
    else
    {
     VisitedAddress="未知IP地址";
    }
    //已经获取VisitedAddress,VisitedIplocal
    //获取结束
    //获取用户访问途径
    //获取上页访问URL
    ViewState["url"]=Request.UrlReferrer;
    Uri VisitedUrl=(Uri)ViewState["url"]; 
    //判断来源 
    if (ViewState["url"]!=null)
    {
     string[,] Usercome =  { {"sina.com.cn","新浪搜索"}, {"sohu.com","搜狐搜索"}, {"baidu.com","百度搜索"}, {"online.sh.cn","上海热线"}, {"163.com","网易搜索"}, {"yahoo.com","Yahoo"}, {"21cn.com","21cn搜索"}, {"google.com","Google"}, {"china.com","中华网"}
     int LengthOfusercome = Usercome.GetLength(0);                
     for (int i=0;i<LengthOfusercome;i++)
     {
      for(int j=0;j<2;j++)
      {
       int ifcheck=VisitedUrl.ToString().IndexOf(Usercome[i,0]);
       if (ifcheck>=0)      
        VisitedMethod=Usercome[i,1];  
      }
     }
     if (VisitedMethod==null)
     {
      VisitedMethod="其他位置";
     } 
     VisitedRefer=ViewState["url"].ToString();
    }
    else
    {
     VisitedMethod="域名输入";
     VisitedRefer="";
    }
    //已经获取VisitedMethod    
    VisitedIe=User.Agent(1);
    VisitedSystem=User.Agent(2);

    //Response.Write(VisitedIP+"<br>");//获取IP
    //Response.Write(VisitedAddress+"<br>");//获取地址
    //Response.Write(VisitedIplocal+"<br>");//获取上网方式
    //Response.Write(VisitedMethod+"<br>");//获取浏览途径   
    // Response.Write(VisitedRefer+"<br>");//获取上次访问URL
    //Response.Write(VisitedIe+"<br>");//获取IE版本
    //Response.Write(VisitedSystem+"<br>");//获取操作系统 
    //将数据添加到用户访问信息中
    AddResult=(int)counterabout.AddUserInfor(VisitedIP,DateTime.Now.ToString(),VisitedAddress,VisitedIplocal,VisitedRefer,VisitedIe,VisitedSystem);
    Cyear = Convert.ToInt32(Convert.ToDateTime(DateTime.Now).ToString("yyyy"));
    Cmonth =Convert.ToInt32(Convert.ToDateTime(DateTime.Now).ToString("MM"));
    Cday = Convert.ToInt32(Convert.ToDateTime(DateTime.Now).ToString("dd"));
    CountMonth=Convert.ToInt32(Convert.ToDateTime(DateTime.Now).ToString("yyyyMM"));
 
    //添加年记录
    int pyear=(int)counterabout.SelectCountYearA(Cyear);
    if (pyear==0)
    {
     AddResult=(int)counterabout.AddYear(Cyear);
    }
    EditResult=(int)counterabout.EditYear(Cyear,Cmonth);
    //至此结束
    //添加月记录
    int pmonth=(int)counterabout.SelectCountMonthC(CountMonth);
    if (pmonth==0)
    {
     AddResult=(int)counterabout.AddMonth(CountMonth);
    }
    EditResult=(int)counterabout.EditMonth(CountMonth,Cday);
    //至此结束
    //添加Browser.os.local,sute
    int pcount1=(int)counterabout.SelectCountBOL("Count_Browser",VisitedIe);
    if (pcount1==0)
    {
     AddResult=(int)counterabout.AddBOL("Count_Browser",VisitedIe);
    }
    EditResult=(int)counterabout.EditBOLE("Count_Browser",VisitedIe);
    //
    int pcount2=(int)counterabout.SelectCountBOL("Count_Os",VisitedSystem);
    if (pcount2==0)
    {
     AddResult=(int)counterabout.AddBOL("Count_Os",VisitedSystem);
    }
    EditResult=(int)counterabout.EditBOLE("Count_Os",VisitedSystem);
    //
    int pcount3=(int)counterabout.SelectCountBOL("Count_Local",VisitedAddress);
    if (pcount3==0)
    {
     AddResult=(int)counterabout.AddBOL("Count_Local",VisitedAddress);
    }
    EditResult=(int)counterabout.EditBOLE("Count_Local",VisitedAddress);
    //
    int pcount4=(int)counterabout.SelectCountBOL("Count_Site",VisitedMethod);
    if (pcount4==0)
    {
     AddResult=(int)counterabout.AddBOL("Count_Site",VisitedMethod);
    }
    EditResult=(int)counterabout.EditBOLE("Count_Site",VisitedMethod);    
    //至此结束    
   }
   else
   {
    //Response.Write("已经统计");
   }
  }  
  public class User//获取用户操作系统和浏览器版本
  {
   public static string Agent(int intNum)
   {
    string strResult = null;
    strResult = HttpContext.Current.Request.UserAgent.Split(';')[intNum].Trim().Replace("(", "").Replace(")", "");
    switch (intNum)
    {
     case 1:
      strResult = Browser(strResult);
      break;
     case 2:
      strResult = System(strResult);
      break;
    }
    return strResult;
   }
 
   public static string System(string strPara)
   {
    string strResult = null;
    switch (strPara)
    {
     case "Windows 4.10":
      strResult = "Windows 98";
      break;
     case "Windows 4.9":
      strResult = "Windows Me";
      break;
     case "Windows NT 5.0":
      strResult = "Windows 2000";
      break;
     case "Windows NT 5.1":
      strResult = "Windows XP";
      break;
     case "Windows NT 5.2":
      strResult = "Windows Server 2003";
      break;
     default:
      strResult = "其他系统";
      break;
    } 
    return strResult;
   }
 
   public static string Browser(string strPara)
   {
    string strResult = null;
    strResult = strPara.Replace("MSIE", "Internet Explorer");
    return strResult;
   }       
  }

 }
}

作者Blog:http://blog.csdn.net/leavecd/ 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息