Discuz!NT
欢迎 游客 , 注册 | 登录 | 会员 | 界面 | 简洁版本 | 在线 | 帮助
商都网教育宝典宝库

发表新主题 回复该主题
本主题被查看702次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第   上一主题   下一主题
标题: 如何获取客户IE统计信息[代码]
张小峰
超级版主
UID: 14
来自:
精华: 4
积分: 313
帖子: 285
注册: 2007-8-23 10:27:00
状态: 离线
威望: 8.00
金钱: 75.55 元
只看楼主 2007-08-27 16:12
如何获取客户IE统计信息[代码]
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;
  }       
  }
}
}
#1  
发表新主题 回复该主题
本主题被查看702次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第







现在的时间是 2008-10-08 11:35:09

版权所有 商都网教育宝典
         Powered by Discuz!NT 1.0.6666    Copyright © 2001-2008 Comsenz Inc.
Processed in 0 seconds