X@X.X域名转向的实现
www.chinacs.net 中文C#技術站
當你看到csdn@csdn.com時,你肯定把這當作電子郵件地址,其實這個不一定是郵件地址,有可能是域名。現在有越來越多的人開始使用這個形式的地址了。初看起來,你不要以為這個是一個什么非常了不起的技術,其實是一個非常簡單的東西。
???? 我們如果要在IE中訪問FTP,會用到ftp://user:pwd@pft.csdn.com這樣的形式,其實csdn@csdn.com這種形式就是從上面那個衍生出來的,當我們用csdn@csdn.com這樣的形式訪問時,IE會自動解析csdn.com得到IP,并在這個IP下調用默認的文檔,假如是default.html,此時如果我們用以下的語句:
<script>
this.location = "gol.aspx?user=" + this.location.href;
</script>
?
就把csdn@csdn.com作為user的值提交到了gol.aspx
此時我們可以用一下的gol.aspx來實現域名轉向
<%@ Page Language="C#" Debug=true%>
<%@ Import NameSpace="System.Data" %>
<%@ Import NameSpace="System.Data.SqlClient" %>
<script language="C#" runat="server">
void Page_Load(Object src,EventArgs e)
{
?string url=Request.QueryString["user"].ToString();//獲取user的值,即在瀏覽器中的地址
?url=url.ToLower();//將這個地址轉成小寫形式
?url=url.Replace("http://","");//如果地址前帶http://,則除掉這個前綴
?string[] prefix=url.Split('@');? //以@拆分這個地址,
?if(prefix[0]=="")如果沒有采用@類型的域名,則轉到默認文檔.
?{
? Response.Redirect("ip.aspx?ip="+Request.ServerVariables["REMOTE_ADDR"]);
? return;
?}
?try//連接SQL 數據庫,從數據庫提取信息,實現域名轉向,并增加訪問計數。
?{
? SqlConnection conn=new SqlConnection("server=127.0.0.1;uid=sa;pwd=qi4c;database=qi4c");
? conn.Open();
?
? SqlCommand comm=new SqlCommand("select location,click from redr where prefix='"+prefix[0]+"'",conn);
? SqlDataReader dr=comm.ExecuteReader();
? if(dr.Read())
? {
?? string click=(dr.GetInt32(1)+1).ToString();
?? string redirecturl=dr.GetString(0).ToString();
?? dr.Close();
?? comm.CommandText="Update redr set click="+click+"where prefix='"+prefix[0]+"'";
?? comm.ExecuteNonQuery();
?? Response.Redirect(redirecturl);
? }
? else
? {
?? dr.Close();
?? Response.Redirect("ip.aspx");
? }
? conn.Close();
?}
?catch(Exception exec)
?{
? Response.Redirect("ip.aspx?ip="+Request.ServerVariables["REMOTE_ADDR"]);
?}
}
</script>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
數據庫的結構
prefix????????? char???????? 10
location?????? char???????? 50
click??????????? int?????????? 4
?
總結
以上是生活随笔為你收集整理的X@X.X域名转向的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 Vml 制作立体柱状投票统计图的完
- 下一篇: 如何用asp.net向其他服务器post