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; } } } }
|