极品桌面
极品网文
极品日记
访客留言
加载中...
网文首页
精妙网文
爆笑网文
网页制作
小说连载
ASP
网页技术
网站相关
XML
建站经验
PHP
MS SQL
查看文章
实现WEB中的@虚拟域名系统(原理篇)
作者:minnie 来源:开发者俱乐部 添加时间:2002年12月11日 字体:
大
中
小
83384
找到了这遍很好的东东哦,奉献给大家。大家以后不用花钱注册域名了,呵呵!
hL~gPr
hL~gPr
很多网友可能发现,现在在一些网站中,特别是个人网站中发现有使用youname@xxx.com的虚拟域名。当我
hL~gPr
告诉我
hL~gPr
朋友的时候他们都说这不是电子邮件的地址吗?其实本来确实是的,不过要是将它输入到浏览器的地址中时,它就不是了,而是地地道道地一个子级域名。不信的话,你在浏览器中输入
http://bbs@luyu.net
和
http://guestbook@luyu.net
看看。是不是发现他们是两个不同的地址呢,前者是本站BBS登录页,后者是本站留言簿,而本站却是首页是
http://luyu.net
,很酷吧。 有的网友也问为什么不用
http://bbs.luyu.net
和
http://guestbook.luyu.net
做虚拟域名呢,这才是真正的二级子域名啊。因为这在实现方面没什么不同,只是“。”在域名中的作用可大不一样,你可以用
http://www.luyu.net
访问,确不是
http://www@luyu@net
吧,因为“。”要考虑到一个解析解码的问题。所以要做“。”的虚拟域名必须要让域名服务商开通泛域名的作用,就是只要在浏览器的地址栏中键入*.luyu.net的域名,都会先到luyu.net服务器上去请求解析解码服务,这样的话,实现起无限多个免费的“。”虚拟域名就不是难是了。关键大部分泛域名的开通是要收100到200元人民币的,所以我
hL~gPr
们暂不考虑而考虑用免费的@域名了。有的网友也问为什么不用“!#$%”其他的符号而偏偏要用@呢,这一点在看完下面的文章你自然就会明白了。
hL~gPr
hL~gPr
通过本文章你就可以做出属于自己的@域名了。到时候自己就是管理员,想加什么链接都可以,包括中文的,想想直接打http://壁纸@luyu.net那多爽啊。不过中文要注意的是UTF-8规范问题。
hL~gPr
hL~gPr
下面我
hL~gPr
们就先讲一下实现@虚拟域名的方方面面。
hL~gPr
hL~gPr
@虚拟域名的实现始于在浏览器中直接以用户和密码的方式登录FTP服务器的方法。如:在浏览器的地址栏中键入password:username@
ftp://my.ftp.com
,此时IE就会自动以用户 “username” 和密码 “password”登陆FTP服务器;相当于先在浏览器的地址栏中键入
ftp://my.ftp.com
,进入登录页面,再在提示下输入用户名和密码一样。这是为什么呢?原来在http1.1协议中,就规定实现了http的访问授权功能,形式就如同上面的password:username@FTP或是以header发送的服务器主机。然后其中的password一项可以省略,也就是说访问username@服务器主机,就等于是以username的身份访问此服务器主机一样,就样我
hL~gPr
想大家就会明白为什么我
hL~gPr
们可以用@,而不用其他的符号了吧。所以说guestbook@luyu.net,实际上就是以guestbook的用户来访问luyu.net主机,可为什么能访问到留言簿的页面呢?其实这只是个简单的页面跳转功能而以,具体的在下面将讨论到。
hL~gPr
hL~gPr
实现跳转的功能就是指当用户进入一个页面时,此页面会自动的链接到一个新的页面。例如:你在打
http://luyu.net
时,进入的其实不是
http://luyu.net/index.html
或是
http://luyu.net/default.html
而是def.html。这可是不我
hL~gPr
自作多情修改了服务器的默认连接文档,况且大部分情况上你也修改不了(因为不是自己的服务器)。其实你在打
http://luyu.net
时,浏览器还是先进入default.html页面,然后由里面的javascript来进行转向,不信的话,你可以打开我
hL~gPr
的default.html文档看看就知道了,不过下面我
hL~gPr
们也会把它贴出来的。
hL~gPr
hL~gPr
其实我
hL~gPr
的default.html文档中只有下面的几行:
hL~gPr
hL~gPr
<script>
hL~gPr
hL~gPr
this.location = "gourl.asp?user=" + this.location.href;
hL~gPr
hL~gPr
</script>
hL~gPr
hL~gPr
只有短短的三行代码,其实他的作用就是实现转向,当网友输入
http://bbs@luyu.net
时,实际上这段代码就是将这个值赋给user变量,并转送给gourl.asp文件中去,以便处理。其实user的值关键就在于@前的http://后的那些字符,在这儿是“BBS”,而
http://guestbook@luyu.net
中就是“guestbook”。我
hL~gPr
们得到这些字符后,再进行相应的转向其真实的网址。
hL~gPr
hL~gPr
如:如果得到的值的“BBS”,我
hL~gPr
们就转到
http://luyu.net/free
这个网址。那么如果知道是
http://luyu.net/free
呢,我
hL~gPr
们可以通过文本或数据库等来来读。这里我
hL~gPr
们选择ACCESS数据库,因为管理起来比较方便,而且支持ASP的主机一般都是支持ACCESS的。
hL~gPr
hL~gPr
下面是库中的url表结构:
hL~gPr
hL~gPr
字段名 字段类型 字段默认值 //功能注释
hL~gPr
hL~gPr
id int 自增 关键字 1 不用user做关键字是怕其中有中文字符
hL~gPr
hL~gPr
user 字符型 null 如BBS或GUESTBOOK的值
hL~gPr
hL~gPr
url 字符型 null 转向的网址
hL~gPr
hL~gPr
click int 0 访问量
hL~gPr
hL~gPr
表里的字段很少,只有4个,网友可以根据需要再增加一些功能字段,如是否有弹出窗口广告,访问量分析等。不过必要的就是user字段和url字段,因为我
hL~gPr
们必须要得到user的值,再根据它得到其转向url网址,再在gourl.asp中实现转向就行了。
hL~gPr
hL~gPr
下面是gourl.asp中实现转向的全部程序(我
hL~gPr
会在程序中写下注释):
hL~gPr
hL~gPr
hL~gPr
dim conn,dbs //定义变量
hL~gPr
hL~gPr
Set conn=Server.CreateObject("ADODB.Connection") //建立连接对象
hL~gPr
hL~gPr
dbs=server.mappath("url.mdb") //定义要连接的数据库路径
hL~gPr
hL~gPr
conn.open "driver={microsoft access driver (*.mdb)};dbq="&dbs //打开并实现其数据库源的链接
hL~gPr
hL~gPr
user=trim(request.querystring("user")) //得到default.html文件中得到的在浏览器中输入的网址
hL~gPr
hL~gPr
if user<>"" then //当user值不为空时
hL~gPr
hL~gPr
user=replace(user,"
http://"
;,"") //将“http://”字符串从user值删去
hL~gPr
hL~gPr
at=instr(user,"@") //将user值中“@”所在位置赋给变量at
hL~gPr
hL~gPr
else
hL~gPr
hL~gPr
response.write "信息出错,请联系moon!" //当user值为空时则告诉网友有错
hL~gPr
hL~gPr
end if
hL~gPr
hL~gPr
if at>0 then
hL~gPr
hL~gPr
user=left(user,at-1) //当user值中“@”所在的位置大于0时,将其中的部分重赋给user,如“BBS”或“ GUESTBOOK”等值
hL~gPr
hL~gPr
else
hL~gPr
hL~gPr
response.redirect "def.htm" //如果没有得到其中的值,如打
http://www.luyu.net
时,就返回def.htm文件中。
hL~gPr
hL~gPr
response.end //停止输出
hL~gPr
hL~gPr
end if
hL~gPr
hL~gPr
if user<>"" then
hL~gPr
hL~gPr
set rs=conn.execute("select url from dns where user='"&user&"'") //当user值不为空时,连接数据库,将进行搜索
hL~gPr
hL~gPr
if not rs.eof then
hL~gPr
hL~gPr
conn.execute(“update url set click=click+! Where user=’”&user&”’”)//当记录不为空时,将此网站的访问量加1
hL~gPr
hL~gPr
response.redirect rs("url") //再转向其网站
hL~gPr
hL~gPr
else
hL~gPr
hL~gPr
response.write "抱歉,没有这个网站!" //记录为空时,警告网友没有此网站
hL~gPr
hL~gPr
end if
hL~gPr
hL~gPr
set rs=nothing
hL~gPr
hL~gPr
else
hL~gPr
hL~gPr
response.write"抱歉,没有这个域名!" //当user的值为空时,则警告网友没有此域名
hL~gPr
hL~gPr
end if
hL~gPr
hL~gPr
set conn=nothing //关闭数据库连接
hL~gPr
hL~gPr
hL~gPr
如果想在访问虚拟域名时做个弹出窗口,以帮自己做个广告的话,可以在将上面的代码改成:
hL~gPr
hL~gPr
<script>
hL~gPr
window.open("
http://luyu.net"
;,"网络随笔","width=350,height=450");
hL~gPr
hL~gPr
this.location = "gourl.asp?user=" + this.location.href;
hL~gPr
hL~gPr
</script>
hL~gPr
hL~gPr
好了,这样一个域名访问系统就简单的做好了。如果和PHP或是JSP等来实现的话,原理也是一样的,我
hL~gPr
相信大家看了这篇文章都可以做出来了。只是把gourl.asp文件改一下便可。
83381
返回页面顶端
上一篇:
用ASP技术编制隐藏用户密码程序
下一篇:
数据库查询中的特殊字符的问题
返回上一页
打印本文
加入收藏
页面最后更新时间:2011年5月18日