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

  如果自己的服务器也能够实现简记域名就好了。其实这并不复杂。你也可以做一个简记域名系统。

  简记域名系统的关键技术在于:实现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//

   = getallheaders();
'www.knowsky.com
  while (list(, ) = each()) {

  if(=="Host"){= strtok(,".");}}

  //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(!=file("data/user.dat")){echo "Open Data File Error!!";}

  ="http://";

  for(=0;<count();++)

  if(strtok(,":")==){

  =; }

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

  else{

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

时间: 2024-09-17 03:35:27

用PHP编程开发“虚拟域名”系统_php基础的相关文章

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

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

玩转虚拟域名◎+ ._php基础

玩转虚拟域名◎+ . 不知道大家最近上网是否发现一个新现象,就是有一些网站开始提供"username@server"的虚拟域名服务.由于"@"的魅力,大家纷纷申请,你或许会想:"如果我也能提供这种服务,该多好阿:)人气肯定不错!"本文将给大家揭开"@"的"神秘"面纱,让大家都可以来"@"!(Do u @ today?) 别急,这个并不是电子邮件的地址,是一种虚拟域名,不相信的话可以在浏览

[视频教程]面向服务式编程开发呼叫中心系统

课程简要介绍:课程的重点是系统架构,穿插着讲到了一些技术细节和技术难点.课程假定学员有一定的C#知识,有一定的面向对象的知识.课程从无到有开发了一个呼叫中心的DEMO,并在课程的最后提供源码,整个课程依据作者架构设计的单价为30-50W的呼叫中心系统做讲解,此系统迄今为止仍在开发和完善的过程中(不断有新模块加入进来). 涉及到的技术:VS2010.C#..NET.SQLserver2008.windowsform 第1讲项目概述及项目功能演示 第2讲DevExpress简要介绍 第3讲创建WCF

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高级编程-函数-郑阿奇_php基础

1.php函数 1.用户自定义函数 复制代码 代码如下: function 函数名字([$parameter,[,-]]) { //函数代码 } 注意:函数名不能与系统函数或用户已经定义的函数重名. $parameter为函数参数,函数一般可以有0个或多个参数, 2.参数的传递 参数是通过值来传递的,例如前面定义func()函数是通过变量$a和$b的值传递的.通过值传递参数不会因为函数内部参数值的变化而改变函数外部的值. 复制代码 代码如下: <?php function color(&$c

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

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

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

一个从别的网站抓取信息的例子(域名查询)_php基础

<?   if (isset($xx)) { $dodo=@file("http://www.e9china.com/cgi-bin/comdns.pl?raw=1&lookup=OK&fqdn=".$fqdn."&domain=".$domain."&root=".$root."&cdomain=2.7");    $i=0; while($dodo[$i]) {    echo