如何获取客户IE统计信息


namespace Huawei.com
{

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


提供了基于BP(Back Propagation)神经网络结合PID(比例-积分-微分)控制策略的Simulink仿真模型。该模型旨在实现对杨艺所著论文《基于S函数的BP神经网络PID控制器及Simulink仿真》中的理论进行实践验证。在Matlab 2016b环境下开发,经过测试,确保能够正常运行,适合学习和研究神经网络在控制系统中的应用。 特点 集成BP神经网络:模型中集成了BP神经网络用于提升PID控制器的性能,使之能更好地适应复杂控制环境。 PID控制优化:利用神经网络的自学习能力,对传统的PID控制算法进行了智能调整,提高控制精度和稳定性。 S函数应用:展示了如何在Simulink中通过S函数嵌入MATLAB代码,实现BP神经网络的定制化逻辑。 兼容性说明:虽然开发于Matlab 2016b,但理论上兼容后续版本,可能会需要调整少量配置以适配不同版本的Matlab。 使用指南 环境要求:确保你的电脑上安装有Matlab 2016b或更高版本。 模型加载: 下载本仓库到本地。 在Matlab中打开.slx文件。 运行仿真: 调整模型参数前,请先熟悉各模块功能和输入输出设置。 运行整个模型,观察控制效果。 参数调整: 用户可以自由调节神经网络的层数、节点数以及PID控制器的参数,探索不同的控制性能。 学习和修改: 通过阅读模型中的注释和查阅相关文献,加深对BP神经网络与PID控制结合的理解。 如需修改S函数内的MATLAB代码,建议有一定的MATLAB编程基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值