亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1291 | 回復(fù): 0
打印 上一主題 下一主題

實(shí)現(xiàn)WEB中的@虛擬域名系統(tǒng)(原理篇) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2006-04-09 20:03 |只看該作者 |倒序?yàn)g覽
很多網(wǎng)友可能發(fā)現(xiàn),現(xiàn)在在一些網(wǎng)站中,特別是個(gè)人網(wǎng)站中發(fā)現(xiàn)有使用youname@xxx.com的虛擬域名。當(dāng)我告訴我朋友的時(shí)候他們都說(shuō)這不是電子郵件的地址嗎?其實(shí)本來(lái)確實(shí)是的,不過(guò)要是將它輸入到瀏覽器的地址中時(shí),它就不是了,而是地地道道地一個(gè)子級(jí)域名。有的網(wǎng)友也問(wèn)為什么不用http://bbs.siyizhu.com之類的虛擬域名呢,這才是真正的二級(jí)子域名啊。因?yàn)檫@在實(shí)現(xiàn)方面沒(méi)什么不同,只是"。"在域名中的作用可大不一樣,你可以用http://siyizhu.com訪問(wèn),確不是http://siyizhu@com吧,因?yàn)?quot;。"要考慮到一個(gè)解析解碼的問(wèn)題。所以要做"。"的虛擬域名必須要讓域名服務(wù)商開(kāi)通泛域名的作用,就是只要在瀏覽器的地址欄中鍵入*.siyizhu.com的域名,都會(huì)先到luyu.net服務(wù)器上去請(qǐng)求解析解碼服務(wù),這樣的話,實(shí)現(xiàn)起無(wú)限多個(gè)免費(fèi)的"。"虛擬域名就不是難是了。關(guān)鍵大部分泛域名的開(kāi)通是要收100到200元人民幣的,所以我們暫不考慮而考慮用免費(fèi)的@域名了。有的網(wǎng)友也問(wèn)為什么不用"!#$%"其他的符號(hào)而偏偏要用@呢,這一點(diǎn)在看完下面的文章你自然就會(huì)明白了。
  通過(guò)本文章你就可以做出屬于自己的@域名了。到時(shí)候自己就是管理員,想加什么鏈接都可以,包括中文的,想想直接打http://壁紙@luyu.net那多爽啊。不過(guò)中文要注意的是UTF-8規(guī)范問(wèn)題。
  下面我們就先講一下實(shí)現(xiàn)@虛擬域名的方方面面。
  @虛擬域名的實(shí)現(xiàn)始于在瀏覽器中直接以用戶和密碼的方式登錄FTP服務(wù)器的方法。如:在瀏覽器的地址欄中鍵入password:username@ftp://my.ftp.com,此時(shí)IE就會(huì)自動(dòng)以用戶 "username" 和密碼 "password"登陸FTP服務(wù)器;相當(dāng)于先在瀏覽器的地址欄中鍵入ftp://my.ftp.com,進(jìn)入登錄頁(yè)面,再在提示下輸入用戶名和密碼一樣。這是為什么呢?原來(lái)在http1.1協(xié)議中,就規(guī)定實(shí)現(xiàn)了http的訪問(wèn)授權(quán)功能,形式就如同上面的password:username@FTP或是以header發(fā)送的服務(wù)器主機(jī)。然后其中的password一項(xiàng)可以省略,也就是說(shuō)訪問(wèn)username@服務(wù)器主機(jī),就等于是以u(píng)sername的身份訪問(wèn)此服務(wù)器主機(jī)一樣,就樣我想大家就會(huì)明白為什么我們可以用@,而不用其他的符號(hào)了吧。所以說(shuō)guestbook@luyu.net,實(shí)際上就是以guestbook的用戶來(lái)訪問(wèn)luyu.net主機(jī),可為什么能訪問(wèn)到留言簿的頁(yè)面呢?其實(shí)這只是個(gè)簡(jiǎn)單的頁(yè)面跳轉(zhuǎn)功能而以,具體的在下面將討論到。
  實(shí)現(xiàn)跳轉(zhuǎn)的功能就是指當(dāng)用戶進(jìn)入一個(gè)頁(yè)面時(shí),此頁(yè)面會(huì)自動(dòng)的鏈接到一個(gè)新的頁(yè)面。例如:你在打http://siyizhu.com時(shí),進(jìn)入的其實(shí)不是http://siyizhu.com/index.html或是http://siyizhu.com/default.html而是default.html。這可是不我自作多情修改了服務(wù)器的默認(rèn)連接文檔,況且大部分情況上你也修改不了(因?yàn)椴皇亲约旱姆⻊?wù)器)。其實(shí)你在打http://siyizhu.com時(shí),瀏覽器還是先進(jìn)入default.html頁(yè)面,然后由里面的javascript來(lái)進(jìn)行轉(zhuǎn)向,不信的話,你可以打開(kāi)我的default.html文檔看看就知道了,不過(guò)下面我們也會(huì)把它貼出來(lái)的。
  其實(shí)我的default.html文檔中只有下面的幾行:

  this.location = "gourl.asp?user=" + this.location.href;
  
  只有短短的三行代碼,其實(shí)他的作用就是實(shí)現(xiàn)轉(zhuǎn)向,當(dāng)網(wǎng)友輸入http://bbs@siyizhu時(shí),實(shí)際上這段代碼就是將這個(gè)值賦給user變量,并轉(zhuǎn)送給gourl.asp文件中去,以便處理。其實(shí)user的值關(guān)鍵就在于@前的http://后的那些字符,在這兒是"BBS",而http://guestbook@lsiyizhu中就是"guestbook"。我們得到這些字符后,再進(jìn)行相應(yīng)的轉(zhuǎn)向其真實(shí)的網(wǎng)址。
  如:如果得到的值的"BBS",我們就轉(zhuǎn)到http://siyizhu/free這個(gè)網(wǎng)址。那么如果知道是http://luyu.net/free呢,我們可以通過(guò)文本或數(shù)據(jù)庫(kù)等來(lái)來(lái)讀。這里我們選擇ACCESS數(shù)據(jù)庫(kù),因?yàn)楣芾砥饋?lái)比較方便,而且支持ASP的主機(jī)一般都是支持ACCESS的。
  下面是庫(kù)中的url表結(jié)構(gòu):
  字段名 字段類型 字段默認(rèn)值 //功能注釋
  id int 自增 關(guān)鍵字 1 不用user做關(guān)鍵字是怕其中有中文字符
  user 字符型 null 如BBS或GUESTBOOK的值
  url 字符型 null 轉(zhuǎn)向的網(wǎng)址
  click int 0 訪問(wèn)量
  表里的字段很少,只有4個(gè),網(wǎng)友可以根據(jù)需要再增加一些功能字段,如是否有彈出窗口廣告,訪問(wèn)量分析等。不過(guò)必要的就是user字段和url字段,因?yàn)槲覀儽仨氁玫絬ser的值,再根據(jù)它得到其轉(zhuǎn)向url網(wǎng)址,再在gourl.asp中實(shí)現(xiàn)轉(zhuǎn)向就行了。
  下面是gourl.asp中實(shí)現(xiàn)轉(zhuǎn)向的全部程序(我會(huì)在程序中寫(xiě)下注釋):
  dim conn,dbs //定義變量
  Set conn=Server.createObject("ADODB.Connection") //建立連接對(duì)象
  dbs=server.mappath("url.mdb") //定義要連接的數(shù)據(jù)庫(kù)路徑
  conn.open "driver={microsoft access driver (*.mdb)};dbq="&dbs //打開(kāi)并實(shí)現(xiàn)其數(shù)據(jù)庫(kù)源的鏈接
  user=trim(request.querystring("user")) //得到default.html文件中得到的在瀏覽器中輸入的網(wǎng)址
  if user"" then //當(dāng)user值不為空時(shí)
  user=replace(user,"http://","") //將"http://"字符串從user值刪去
  at=instr(user,"@") //將user值中"@"所在位置賦給變量at
  else
  response.write "信息出錯(cuò),請(qǐng)聯(lián)系moon!" //當(dāng)user值為空時(shí)則告訴網(wǎng)友有錯(cuò)
  end if
  if at>0 then
  user=left(user,at-1) //當(dāng)user值中"@"所在的位置大于0時(shí),將其中的部分重賦給user,如"BBS"或"  GUESTBOOK"等值
  else
  response.redirect "def.htm" //如果沒(méi)有得到其中的值,如打http://www.luyu.net時(shí),就返回def.htm文件中。
  response.end //停止輸出
  end if
  if user"" then
  set rs=conn.execute("select url from dns where user=’"&user&"’") //當(dāng)user值不為空時(shí),連接數(shù)據(jù)庫(kù),將進(jìn)行搜索
  if not rs.eof then
  conn.execute("update url set click=click+! where user=’"&user&"’")//當(dāng)記錄不為空時(shí),將此網(wǎng)站的訪問(wèn)量加1
  response.redirect rs("url") //再轉(zhuǎn)向其網(wǎng)站
  else
  response.write "抱歉,沒(méi)有這個(gè)網(wǎng)站!" //記錄為空時(shí),警告網(wǎng)友沒(méi)有此網(wǎng)站
  end if
  set rs=nothing
  else
  response.write"抱歉,沒(méi)有這個(gè)域名!" //當(dāng)user的值為空時(shí),則警告網(wǎng)友沒(méi)有此域名
  end if
  set conn=nothing //關(guān)閉數(shù)據(jù)庫(kù)連接
  如果想在訪問(wèn)虛擬域名時(shí)做個(gè)彈出窗口,以幫自己做個(gè)廣告的話,可以在將上面的代碼改成:
  
  window.open("http://siyizhu","簡(jiǎn)單生活","width=350,height=450");
  this.location = "gourl.asp?user=" + this.location.href;
  
  好了,這樣一個(gè)域名訪問(wèn)系統(tǒng)就簡(jiǎn)單的做好了。如果和PHP或是JSP等來(lái)實(shí)現(xiàn)的話,原理也是一樣的,我相信大家看了這篇文章都可以做出來(lái)了。只是把gourl.asp文件改一下便可。


本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/15511/showart_97367.html
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP