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
本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。