外部计数器如何通过图像跟踪唯一身份访问者
如果可能的话,我也想获得推荐人。
类似于img =“http://www.somecounterdomain.com/count.php?page=83599”
我正在使用ASP.NET,c#
我知道一个用户可以“作弊”,但是想要将这种可能性降到最低
另外一个困难是我应该追踪外部服务器并且不能在那里实现c#代码
我能做的只是一种反作用的形象或者像这样的模仿。
我尝试使用生成的图像。
谢谢答案。
答案 0 :(得分:1)
基本上你需要做的是以下几点。
1-创建.ashx或.aspx。假设您使用.aspx并将其命名为StatServer.aspx,Page_Load函数将读取查询字符串并将数据写入数据库,您将在步骤2中看到查询字符串。如果需要,您可以返回可以是渲染。一些粗略的代码看起来像这样。
private void Page_Load(object sender, EventArgs e)
{
WriteQueryStringInformationToDB(Request.QueryString);
Image image = LoadYourImageHere();
using (MemoryStream stream = new MemoryStream())
{
base.Response.Clear();
base.Response.ContentType = "image/png";
image.Save(stream, ImageFormat.Png);
stream.WriteTo(base.Response.OutputStream);
base.Response.End();
}
}
2-这是神奇的,你创建一个小的.js文件。在这个文件中你有一个函数让我们称之为mystats(),这将主要收集客户端信息,并调用托管你在步骤1中创建的页面的URL。客户端信息,如屏幕大小,引用等等都是传递了查询字符串。在函数中包含的一个重要事项是ID,它指示您要更新哪个计数器,这样您就可以在多个站点上使用计数器。一个非常简单的.js可能看起来像这样。 (注意测试等...:))
Image image = LoadYourImageHere();
using (MemoryStream stream = new MemoryStream())
{
base.Response.Clear();
base.Response.ContentType = "image/png";
image.Save(stream, ImageFormat.Png);
stream.WriteTo(base.Response.OutputStream);
base.Response.End();
}
3-在要应用计数器的网页上,添加一个包含服务器中.js文件的脚本块,并从img标签调用mystats函数,这会导致js代码收集info并向您的服务器发送请求,然后服务器更新数据库并返回图像流以显示。
答案 1 :(得分:0)
获取'referer'很容易,并且为了计算您需要设置/检查Cookie的唯一身份访问者。