精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● CGI>>实例分析>>如何做免费域名 xxx.mydomain.com ???

主题:如何做免费域名 xxx.mydomain.com ???
发信人: linxinglu()
整理人: workingnow(2002-10-30 13:51:57), 站内信件
【 在 kai (阿凯) 的大作中提到: 】
: 如何做免费域名 xxx.mydomain.com ???
: 或有相关资料也可。 谢谢!

本文发表于《电脑报》
______________________________________________________________________
____

    《如何制作自己免费虚拟域名》

  随着互联网的发展,公司或个人拥有自己的域名已经很普遍,当你拥有了自
己的
域名,拥有了自己的网站,无非最想做的一件事是将网站的知名度及访问量提高
,可
能贵站的内容并不特别丰富,或更新率也不是特别高,那么提供“免费服务”一
向是
促进网站知名度及访问量的首选做法。
  例如最简单的免费计数器、免费留言板、免费论坛、免费聊天室到近期还挺
火热
的免费虚拟域名服务,说起免费虚拟域名,老网虫们必定会回忆起最早提供免费
虚拟
域名服务的Monolith组织(http://www.ml.org),不过该组织于98年底已经停止该

服务了。就算是新生网虫,想必也应该知道像“my.yeah.net”这样的免费虚拟域

服务吧。你是否曾想过提供类似虚拟域名这样的服务来促进网站知名度呢?也不
知道
技术实现难度如何?
  经过对域名系统的分析,并参考了域名相关的技术介绍文档,发现制作这种
虚拟
域名并不是很困难,只要增加广泛域解释支持(即可以用任何前缀+你的域名直
接访
同样访问你的网站),并利用CGI作相应的二次解释操作即可实现。
  多数Unix平台下的域名系统都支持广泛域解释支持,NT平台自带的域名系统
并不
支持广泛域,一般选用第三方域名软件方才支持,如:DNS Pro。
  关于广泛域设置,只需将域名前缀用“*”表示,这里以named守护程序作为
例子,
修改相应的数据文件,将类别修改成CNAME,CNAME类记录的作用是把一个主机的
别名
与其规范名联系起来,IP地址用“@”表示。
  〖404.com.cn.db 域名数据文件〗:
@               IN      SOA     ns1.winernet.com. root.ns1.winernet.co
m.  (
                                      1998122700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
                IN      NS      ns1.yes123.com.
                IN      MX      5       404.com.cn.
www             IN      A       202.105.191.16
404.com.cn.     IN      A       202.105.191.16
*               IN      CNAME   @
  具体实现虚拟域名二次解释操作的方法,实现之前要确保Web服务器已经将默
认文
件设置为index.cgi,以下用简单的脚本语言Perl为例,可轻松的改写成ASP或PH
P甚至
用JavaScript等脚本程序,假设你拥有一个“404.com.cn”的域名,并且已经支
持广
泛域解释,要实现类似“YourName.404.com.cn”这样的虚拟域名,在CGI里面
首先
获得环境变量HTTP_HOST,然后进行判断处理,最后重定到目标网址便大功告成。

  〖index.cgi文件:〗
#!/usr/bin/perl
print "Content-type: text/html\n\n";
@domain = split/\./,$ENV{'HTTP_HOST'},2; # 以“.”作为标记,进行分割
if($domain[0] eq 'www'){
   &redirect("404 工作室","http://www.404.com.cn/index.html");
}
elsif($domain[0] eq 'lin'){
   &redirect("星网情真","http://member.netease.com/~lin/");
}
else{
   print "虚拟域名未被使用!";
}

sub redirect{
   my($title,$url) = @_;
   print "<title>$title</title>\n";
   print "<frameset frameborder=0 framespacing=0 border=0 rows=100%,*
noresize>\n";
   print "<frame src=$url noresize>\n";
   print "</frameset>\n";
   print "<meta http-equiv=refresh content=0; url=$url>\n";
   print "<a href=$url>$url\n";
}

  本文仅从原理上进行了描述,把目标网址放在程序里面仅是为了测试,感兴
趣的读者
可以应用MySQL数据库,做一个承受数百万会员制的免费域名系统当然不在话下。


  【深圳/林兴陆】
______________________________________________________________________
____

--
= - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - =
=   __,O 星网情真,一切只因:“有缘的,我们会再见!”               =
=  / /\_ are you ready?                                         =
= __/\   ICQ Uin:2876829                                        =
=    /   http://member.netease.com/~lin   [email protected]  小林 =
= - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - =

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.108.27.131]

[关闭][返回]