外部柜台如何获得独特的访客?

时间:2010-04-22 17:07:59

标签: c# asp.net web

外部计数器如何通过图像跟踪唯一身份访问者 如果可能的话,我也想获得推荐人。
类似于img =“http://www.somecounterdomain.com/count.php?page=83599”
我正在使用ASP.NET,c#
我知道一个用户可以“作弊”,但是想要将这种可能性降到最低 另外一个困难是我应该追踪外部服务器并且不能在那里实现c#代码 我能做的只是一种反作用的形象或者像这样的模仿。 我尝试使用生成的图像。 谢谢答案。

2 个答案:

答案 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的唯一身份访问者。