【編程】開源(OpenSource) - 反向連結(Referrers)系統

來源:互聯網
上載者:User
編程|連結|連結 反向連結(Referrers)系統可以很好的顯示反向連結,目前很多網站上顯示的最新來源(referer)統計都是用的是Stephen的referrer統計系統,比如 Booso 反向連結(Referrers)統計系統,還有一個朱傳偉的反向連結統計服務不知道是不是他自己實現的。
總之,網上提供這些反向連結(Referrers)系統不是服務不好,就是定製性不好,所以,乾脆,我煩了,自己花一天時間寫了一個,並且公開原始碼,基本上架構和功能都用了,但是還需要完善。
由於我沒有支援 ASP + Access 的主機,所以無法為大家提供服務,希望有哪個同仁可以提供這個服務?或者 CSDN 會提供這個服務給我?效果圖如下:



基本架構:

採用 ASP + Access

用下列指令碼在需要統計的頁面增加反向連結記錄
<script language=javascript src="/lib/refadd.js"></script>


用下列指令碼在需要顯示的頁面增加反向連結顯示
<script language=javascript src="/lib/refcnt.js"></script>

資料庫:

資料庫只需要一張表即可

ID:整數
IP:字串(255)
Agent:字串(255)
To:字串(255)
Name:字串(255)
From:字串(255)
Date:日期時間
其中"Name"欄位的值是對 From 處理後的結果,比如 From="http://www.google.com/" 則Name="Google"

分析:

只需要簡單一個 SQL 查詢即可:
SELECT [NAME],COUNT(*) FROM [REFERRER] GROUP BY [NAME] ORDER BY COUNT(*) DESC"

如果需要,還可以加上必要的條件,比如顯示訪問次數大於3次的記錄:
SELECT [NAME],COUNT(*) FROM [REFERRER] GROUP BY [NAME] HAVING COUNT(*)>3 ORDER BY COUNT(*) DESC"

準系統:

反向連結記錄
反向連結顯示(支援多種參數)

檔案清單:


lib/refadd.asp
lib/refadd.js
lib/refcnt.asp
lib/refcnt.js
lib/refcon.asp
lib/images/percent.gif
dat/refdb.mdb
原始碼:

由於 CSDN 不提供檔案下載功能,所以我還要找一個地方上傳原始碼,不知道哪裡有,各位同仁請告知道

default.asp
<html>
<head>
<title>Top 100 Refering Sites</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
</head>
<body>
<script language=javascript src="/lib/refadd.js"></script>
<script language=javascript src="/lib/refcnt.js"></script>
</body>
</html>

refadd.asp
<%@language=javascript%>
<!--#include file="refcon.asp" -->
<%
function makeURL(sName,sURL)
{
if(sURL.indexOf("http://") == 0)
{
sURL = sURL.substring(7);
}
return "<a href=\\\"http://" + sURL + "\\\">" + sName+ "</a>";
}
function getName(sIP, sURL)
{
var sName = sURL.toLowerCase();
if(sName == "")
{
sName = makeURL("Direct Refrence", sIP);
}
else
{
if(sName.indexOf("http://") == 0)
{
sName = sName.substring(7);
}
if(sName.indexOf("www.") == 0)
{
sName = sName.substring(4);
}
var nIndex = sName.indexOf("/");
if(nIndex > 0)
{
sName = sName.substring(0, nIndex);
}

if(sName.indexOf(".") == 0)
{
sName = makeURL("Not Avalible", sURL);
}
else
{
if(sName.indexOf("google") == 0)
{
sName = makeURL("Google", sURL);
}
else
if(sName.indexOf("yahoo") == 0)
{
sName = makeURL("Yahoo", sURL);
}
else
{
sName = makeURL(sURL, sURL);
}
}
}
return sName.substring(0,255);
}

var nCT = parseInt("" + Request.QueryString("ct")); if(isNaN(nCT)) nCT = 8;
var sIP = "" + Request.ServerVariables("REMOTE_ADDR"); if(sIP == "undefined" || sIP == "null") sIP = "";
var SQL = "SELECT [ID] FROM [REFERRER] WHERE [IP]='" + sIP + "' AND DATEDIFF('h',[DATE],NOW())<" + nCT;
var oRS = oConnect.Execute(SQL)

if(oRS.EOF && oRS.BOF)
{
var sRF = "" + Request.QueryString("fr");if(sRF == "undefined" || sRF == "null") sRF = "";
var sTO = "" + Request.QueryString("to");if(sTO == "undefined" || sTO == "null") sTO = "";
var sAG = "" + Request.ServerVariables("HTTP_USER_AGENT");

sRF = sRF.substring(0,255);
sTO = sTO.substring(0,255);
sAG = sAG.substring(0,255);

SQL = "INSERT INTO [REFERRER]([DATE],[IP],[NAME],[FROM],[TO],[AGENT])VALUES("
+ "NOW()"
+ ",'" + sIP + "'&qu



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.