如何获取客户IE统计信息[代码]
如何获取客户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;
}
}
}
}