您的位置:首页精文荟萃软件资讯 → WEB中的@虚拟域名系统实例(原理篇)

WEB中的@虚拟域名系统实例(原理篇)

时间:2004/10/7 18:25:00来源:本站整理作者:蓝点我要评论(1)

找到了这遍很好的东东哦,奉献给大家。大家以后不用花钱注册域名了,呵呵!


  很多网友可能发现,现在在一些网站中,特别是个人网站中发现有使用youname@xxx.com的虚拟域名。当我告诉我朋友的时候他们都说这不是电子邮件的地址吗?其实本来确实是的,不过要是将它输入到浏览器的地址中时,它就不是了,而是地地道道地一个子级域名。不信的话,你在浏览器中输入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元人民币的,所以我们暂不考虑而考虑用免费的@域名了。有的网友也问为什么不用“!#$%”其他的符号而偏偏要用@呢,这一点在看完下面的文章你自然就会明白了。

  通过本文章你就可以做出属于自己的@域名了。到时候自己就是管理员,想加什么链接都可以,包括中文的,想想直接打http://壁纸@luyu.net那多爽啊。不过中文要注意的是UTF-8规范问题。

  下面我们就先讲一下实现@虚拟域名的方方面面。

  @虚拟域名的实现始于在浏览器中直接以用户和密码的方式登录FTP服务器的方法。如:在浏览器的地址栏中键入password:usernameftp://my.ftp.com,此时IE就会自动以用户 “username” 和密码 “password”登陆FTP服务器;相当于先在浏览器的地址栏中键ftp://my.ftp.com,进入登录页面,再在提示下输入用户名和密码一样。这是为什么呢?原来在http1.1协议中,就规定实现了http的访问授权功能,形式就如同上面的password:username@FTP或是以header发送的服务器主机。然后其中的password一项可以省略,也就是说访问username@服务器主机,就等于是以username的身份访问此服务器主机一样,就样我想大家就会明白为什么我们可以用@,而不用其他的符号了吧。所以说guestbook@luyu.net,实际上就是以guestbook的用户来访问luyu.net主机,可为什么能访问到留言簿的页面呢?其实这只是个简单的页面跳转功能而以,具体的在下面将讨论到。

  实现跳转的功能就是指当用户进入一个页面时,此页面会自动的链接到一个新的页面。例如:你在打http://luyu.net时,进入的其实不是http://luyu.net/index.html或是http://luyu.net/default.html而是def.html。这可是不我自作多情修改了服务器的默认连接文档,况且大部分情况上你也修改不了(因为不是自己的服务器)。其实你在打http://luyu.net时,浏览器还是先进入default.html页面,然后由里面的javascript来进行转向,不信的话,你可以打开我的default.html文档看看就知道了,不过下面我们也会把它贴出来的。

  其实我的default.html文档中只有下面的几行:

  



  只有短短的三行代码,其实他的作用就是实现转向,当网友输入http://bbs@luyu.net时,实际上这段代码就是将这个值赋给user变量,并转送给gourl.asp文件中去,以便处理。其实user的值关键就在于@前的http://后的那些字符,在这儿是“BBS”,而http://guestbook@luyu.net中就是“guestbook”。我们得到这些字符后,再进行相应的转向其真实的网址。

  如:如果得到的值的“BBS”,我们就转到http://luyu.net/free这个网址。那么如果知道是http://luyu.net/free呢,我们可以通过文本或数据库等来来读。这里我们选择ACCESS数据库,因为管理起来比较方便,而且支持ASP的主机一般都是支持ACCESS的。

  下面是库中的url表结构:

  字段名 字段类型 字段默认值 //功能注释

  id int 自增 关键字 1 不用user做关键字是怕其中有中文字符

  user 字符型 null 如BBS或GUESTBOOK的值

  url 字符型 null 转向的网址

  click int 0 访问量

  表里的字段很少,只有4个,网友可以根据需要再增加一些功能字段,如是否有弹出窗口广告,访问量分析等。不过必要的就是user字段和url字段,因为我们必须要得到user的值,再根据它得到其转向url网址,再在gourl.asp中实现转向就行了。

  下面是gourl.asp中实现转向的全部程序(我会在程序中写下注释):


  dim conn,dbs //定义变量

  Set conn=Server.CreateObject("ADODB.Connection") //建立连接对象

  dbs=server.mappath("url.mdb") //定义要连接的数据库路径

  conn.open "driver={microsoft access driver (*.mdb)};dbq="&dbs //打开并实现其数据库源的链接

  user=trim(request.querystring("user")) //得到default.html文件中得到的在浏览器中输入的网址

  if user<>"" then //当user值不为空时

  user=replace(user,"http://","") //将“http://”字符串从user值删去

  at=instr(user,"@") //将user值中“@”所在位置赋给变量at

  else

  response.write "信息出错,请联系moon!" //当user值为空时则告诉网友有错

  end if

  if at>0 then

  user=left(user,at-1) //当user值中“@”所在的位置大于0时,将其中的部分重赋给user,如“BBS”或“  GUESTBOOK”等值

  else

  response.redirect "def.htm" //如果没有得到其中的值,如打http://www.luyu.net时,就返回def.htm文件中。

  response.end //停止输出

  end if

  if user<>"" then

  set rs=conn.execute("select url from dns where user='"&user&"'") //当user值不为空时,连接数据库,将进行搜索

  if not rs.eof then

  conn.execute(“update url set click=click+! Where user=’”&user&”’”)//当记录不为空时,将此网站的访问量加1

  response.redirect rs("url") //再转向其网站

  else

  response.write "抱歉,没有这个网站!" //记录为空时,警告网友没有此网站

  end if

  set rs=nothing

  else

  response.write"抱歉,没有这个域名!" //当user的值为空时,则警告网友没有此域名

  end if

  set conn=nothing //关闭数据库连接


  如果想在访问虚拟域名时做个弹出窗口,以帮自己做个广告的话,可以在将上面的代码改成:

  



  好了,这样一个域名访问系统就简单的做好了。如果和PHP或是JSP等来实现的话,原理也是一样的,我相信大家看了这篇文章都可以做出来了。只是把gourl.asp文件改一下便可。
 

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本