如何开发一个虚拟域名系统_php基础

大家在使用诸如yourname.yeah.net这样的简记域名时都感到十分方便,有很多人在想:我要是能让自己的服务器也能够实现简记域名就好了。其实这并不复杂。看完了本文,你也可以做一个简记域名系统。  

  简记域名系统的关键技术在于:实现Web页面的重定向(Redirctory)。在本质上,简记域名系统和虚拟机系统完全不同。虚拟机的虚拟域名和IP是存在一一对应关系的。而简记域名系统不需要将域名和IP做一一映射。也就是说,它根本不需要复杂的域名解析机制和虚拟机来完成,它所做的事情就是当你在请求yourname.somedomain时,将你的浏览器重新定向到你本来存放Html页面的地方。  

  为了说明的更完善,下面图例:  

  我提供的源程序是运行环境是:RedHat 5.1 Linux下的Apache1.3.6 Web服务器+PHP3语言。 在编写程序之前,我们首先要设置好我们的服务器。首先要让Apache服务器支持php3。到ftp.redhat.com下载mod_php-2.0.1-9.i386.rpm,安装后,修改/etc/httpd/conf/http.conf文件,去掉#LoadModule php3_module一句前面的#注释号,同样在/etc/httpd/conf/srm.conf文件里去掉#AddType application/x-httpd-php3 .php3前面的注释号,同时在DirectoryIndex一项后添加index.php3。重新启动Apache Server,此时服务器就支持标准的php3语言脚本文件了并能将index.php3作为默认的首页。  
  设置DNS服务器,使其能对泛域名解析。一般的Unix和Linux系统的DNS解析都是由Bind守护程序完成的,Bind4和Bind8的配置文件分别/etc/named.boot和name.conf,配置时根据你的系统修改。设置Bind的配置文件/etc/named.boot,在其中加入“primary domain.com db.domain”一句,添加一个新的域记录。在/etc/name.conf中加入:  

  zone "domain.com" {  
  type master;  
  file "db.domain”;  
  };  
  在/var/name/中新建主域记录文件db.domain,其格式为:  
  N SOA dns.domain.com root.domain.com (  
  199811291 ;Serial  
  28800 ;refresh  
  7200 ;retry  
  604800 ;expire  
  86400) ;minimum  
  dns  
  MX 10 dns.domain.com.  
  dns A 202.115.135.50  
  www A 202.115.135.50  
  * A 202.115.135.50  
  关键是最后一句,即将整个域可能出现未做标记的所有Hostname全部指向同一IP。 执行/usr/sbin/ndc reload,重新加载域名数据库。测试一下,此时应该随便ping一个domain域内的主机(除已经标记的),都指向了指定的IP,那么DNS服务器设置完成。  

  最后一步是编制PHP3脚本。我们刚才已经在图中详细的说明了整个的原理,所以写一个重新定向的程序就不是很难了。  

  让我们来看一个由IE5.0送出的完整HTTP头信息:  

  Accept: application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint,      image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*  
  Accept-Encoding: gzip, deflate  
  Accept-Language: zh-cn  
  Connection: Keep-Alive  
  Host:ww.yahoo.com  
  User-Agent: Mozilla/4.0 (compatible; MSIE 5.0b1; Windows 98)  
  我们需要在整个HTTP头信息中取出Host信息,然后将http://www.jj.jx.cn/www.xxx.xxx/default.htm形式的第一部分“www”,即HostName(也即是用户注册的name)单独取出,作为重定向检索的关键字。  

  检索到用户注册的URL信息后,我们给用户浏览器送一个重定向命令“Localtion: http://www.jj.jx.cn/somewhere/sample.html”,将用户重定向到指定页面。  

  在PHP3中,有函数GetAllHeader(),取得浏览器送出的HTTP头信息。我们主要需要使用此函数来完成整个程序。  

  后面附有源程序,由于只是实验性质的,所以在查询用户信息时,没有使用数据库,如果整个系统要实际应用的话,一定要和数据库挂接起来,不然查询用户信息的过程将是十分漫长,大大影响效率,而且用户数据的管理也不方便。(由于篇幅限制,没有给出注册和管理所需的写记录程序,请自行添加)  

  在源程序中,所有用户信息记录在data子目录下user.dat文件中。其格式为:  

  username:  

  http://octopus.cdit.edu.cn/~qap213/index.html  

  附PHP3源程序:  

  <?  

  //Get HTTP's Header and parse it//  

  $headers = getallheaders();  

  while (list($header, $value) = each($headers)) {  

  if($header=="Host"){$username= strtok($value,".");}}  

  //Jump out the Banner's Window//  

  echo '<script language="JavaScript">',  

  'msg=window.open("banner.htm","sample",  

   "toolbar=no","directories=no",directories=no","menubar=no");',  

  '</script>';  

   

  // seek the user information from the recorded file//  

  if(!$usrinfo=file("data/user.dat")){echo "Open Data File Error!!";}  

  $url="http://";  

  for($i=0;$i<count($usrinfo);$i++)  

  if(strtok($usrinfo[$i],":")==$username){  

  $url=$usrinfo[$i+1];  

  }  

  if($url=="http://"){echo "not found the uesrname of Data!";}  

  else{  

  echo '<meta http-equiv="refresh" content="0;','url=',$url,'">';}  

  ?>  

时间: 2024-12-03 09:50:00

如何开发一个虚拟域名系统_php基础的相关文章

如何开发一个虚拟域名系统

大家在使用诸如yourname.yeah.net这样的简记域名时都感到十分方便,有很多人在想:我要是能让自己的服务器也能够实现简记域名就好了.其实这并不复杂.看完了本文,你也可以做一个简记域名系统. 简记域名系统的关键技术在于:实现Web页面的重定向(Redirctory).在本质上,简记域名系统和虚拟机系统完全不同.虚拟机的虚拟域名和IP是存在一一对应关系的.而简记域名系统不需要将域名和IP做一一映射.也就是说,它根本不需要复杂的域名解析机制和虚拟机来完成,它所做的事情就是当你在请求yourn

用PHP编程语言开发动态WAP页面_php基础

文/成都 yell WAP(无线通讯协议)是在数字移动电话.个人手持设备(PDA等)及计算机之间进行通讯的开放性全球标准协议.随着无线通讯的不断发展,静态的WAP页面在很多方面已经不能满足用户个性化的要求,因此开发者可以在WAP服务器端使用诸如PHP等语言产生动态的WML页面,来满足用户的需要. WAP的应用结构非常类似于Internet,一个典型的WAP应用请求步骤描述如下: 1. 具有WAP用户代理功能的移动终端(如WAP手机),通过内部运行的微浏览器向某一网站发送WAP服务请求.该请求先由

PHP在Web开发领域的优势_php基础

    在多数WEB开发者眼中,ASP和JSP都被认为是领跑者,而PHP却被认为是个弱小的"挣扎者",或者说它是一门被贬低为业余者才使用的语言,不值得参与企业Web开发的竞争.在我看来,PHP没有被当作竞争者的理由是评论者缺乏对它的了解,而且也不了解用于Web开发的其他操作系统.和一些观点相反,Windows不再占有Web虚拟主机服务市场的最大份额,我猜想它在Web开发这一领域里也在被摧城拔寨. 在企业开发里为什么没有PHP?  很显然,PHP被认为落后ASP和JSP太多,以至于它是没

PHP开发文件系统实例讲解_php基础

PHP中有许多与文件系统有关的函数,这些函数不仅可以打开文件,还可以显示目录中的内容.移动文件和其他一些功能,许多人甚至用PHP开发基于互联网的文件资源管理器.  下面的脚本样例可以显示一个目录清单,注释已经包含在代码中:  <? /把要读取的目录的全路径名存入一个名字为$dir_name的变量中./ $dir_name = "/home/me/"; / 创建一个句柄,其值是打开一个给定目录的结果/ $dir = opendir($dir_name); / 建立一个文字块

php+dbfile开发小型留言本_php基础

最近一直在用php+dbfile开发blog,开发过程中学到了不少东西,于是就试着写了一个小留言本.这个留言本采用php+dbfile,不需要使用数据库,可以放在blog中使用,比如http://www.customyze.com,这个blog中的Tag Board就是这个留言本. 整个留言本需要四个文件,分别是:board.php.index.php.config.php.admin.php. board.php用来存储数据,可以先在里面添加了一条留言纪录. 代码拷贝框<?php $Board

第三节 定义一个类 [3]_php基础

当你声明一个类,你需要列出对象应有的所有变量和所有函数-被称为属性和方法. 3.1.1中显示了一个类的构成. 注意在大括号({})内你只能声明变量或者函数. 3.1.2中显示了如何在一个类中定义三个属性和两个方法. 3.1.1 class Name extends Another Class { Access Variable Declaration Access Function Declaration } 3.1.2 <?php //定义一个跟踪用户的类 class User { //属性

一个高ai的分页函数和一个url函数_php基础

这个分页函数非常高只能的 看看就知道了 function ppage($total, $page, $e_page = 15, $e_block = 10, $url = '', $color = '') { if(!strpos($url,'?'))    $url.='?'; else    $url.='&'; if($color<>'') {    $color   ='<font color='.$color.'>';    $colore  = '</fo

用PHP编程开发“虚拟域名”系统_php基础

如果自己的服务器也能够实现简记域名就好了.其实这并不复杂.你也可以做一个简记域名系统. 简记域名系统的关键技术在于:实现Web页面的重定向(Redirctory).在本质上,简记域名系统和虚拟机系统完全不同.虚拟机的虚拟域名和IP是存在一一对应关系的.而简记域名系统不需要将域名和IP做一一映射.也就是说,它根本不需要复杂的域名解析机制和虚拟机来完成,它所做的事情就是当你在请求yourname.somedomain时,将你的浏览器重新定向到你本来存放Html页面的地方. 本程序运行环境是:RedH

怎样在不使用框架的基础上开发一个 Javascript 组件

本文讲的是怎样在不使用框架的基础上开发一个 Javascript 组件, 许多开发者(包括我)犯的一个错误是当遇到问题时他们总是自上而下地考虑问题.他们想问题的时候,总是从考虑框架(Framework),插件(Plugin),预处理器(Pre-processors),后处理器(Post-processors),面向对象模式(objected-oriented patterns)等等这些方面出发,他们也可能会从他们以前看过的一篇文章来考虑.而这时如果有一个生成器(Generator)的话,他们当然