国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      域名過濾名單存儲(chǔ)、匹配方法及裝置的制作方法

      文檔序號(hào):7721350閱讀:151來源:國知局
      專利名稱:域名過濾名單存儲(chǔ)、匹配方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本申請涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種基于樹的域名過濾名單(黑/白名單)存儲(chǔ)、匹配方法及裝置。
      背景技術(shù)
      域名是指由某些字符、數(shù)字和符號(hào)組成的一串標(biāo)示,一個(gè)特定的域名通??梢灾赶騃nternet上的一個(gè)特定站點(diǎn),各機(jī)構(gòu)、組織和公司等通常都會(huì)申請自己所需的一級(jí)域名所有權(quán)和使用權(quán),每個(gè)一級(jí)域名對(duì)應(yīng)的子域名則自動(dòng)歸其擁有,而網(wǎng)絡(luò)用戶通過這些域名便可以訪問到這些機(jī)構(gòu)、公司的門戶站點(diǎn)。隨著當(dāng)今時(shí)代網(wǎng)絡(luò)的飛速發(fā)展,Internet上日益聚集了數(shù)不勝數(shù)的站點(diǎn),其中不可避免也產(chǎn)生了一些以危害用戶利益來獲利的網(wǎng)站,經(jīng)常有一些惡意網(wǎng)站的域名會(huì)出現(xiàn)在受用戶信任的安全網(wǎng)站的網(wǎng)頁或者跳轉(zhuǎn)地址中,用戶在 不經(jīng)意間從安全網(wǎng)站轉(zhuǎn)而訪問到惡意網(wǎng)站的頁面,后果不堪設(shè)想,輕則使用戶獲取一些錯(cuò)誤信息,重則造成經(jīng)濟(jì)損失,甚至造成難以估量的后果。因此,對(duì)提供訪問服務(wù)的網(wǎng)站運(yùn)營者來說,就有責(zé)任致力于避免訪問本網(wǎng)站的用戶受到惡意網(wǎng)站的安全威脅。具體來說,用戶一般是通過瀏覽器的方式來訪問網(wǎng)站頁面,進(jìn)而通過在當(dāng)前頁面點(diǎn)擊鏈接或者在瀏覽器地址欄輸入域名的方式來跳轉(zhuǎn)到不同的頁面,在這個(gè)過程中,有以下兩種情景特別需要引起當(dāng)前網(wǎng)站運(yùn)營者的注意(I)用戶在當(dāng)前A站點(diǎn)(以域名a. com為例)的頁面上進(jìn)行操作,比如點(diǎn)擊鏈接進(jìn)入其他網(wǎng)站時(shí),需要保證用戶不會(huì)通過此鏈接進(jìn)入有危害性的站點(diǎn);(2)用戶通過在瀏覽器地址欄中輸入一個(gè)含有當(dāng)前站點(diǎn)域名的URL(超鏈接),用戶進(jìn)行操作后,需要保證用戶不會(huì)由此進(jìn)入有危害性的站點(diǎn)。例如以下URL =http://
      a.com/login, html target = http://pianzi. com,現(xiàn)實(shí)中很多網(wǎng)站者β通過這種方式來實(shí)現(xiàn)用戶登錄后直接跳轉(zhuǎn)到目標(biāo)地址,用戶在進(jìn)行登錄操作后,都會(huì)認(rèn)為這是A站點(diǎn)的頁面,如果此時(shí)用戶被鏈接到一個(gè)惡意網(wǎng)站,難免不會(huì)出現(xiàn)問題。針對(duì)上述情況,目前一般網(wǎng)站通常采取黑/白名單的策略來進(jìn)行域名過濾。一般意義上的白名單通常是一些字符規(guī)則組成的列表,目標(biāo)如果符合規(guī)范列表的某一條才可以獲得一些權(quán)限;黑名單則恰好相反。在計(jì)算機(jī)領(lǐng)域中,許多網(wǎng)站和軟件等都在使用過濾名單規(guī)則,如防火墻、殺毒軟件等,而具體到網(wǎng)站的域名過濾技術(shù)中,黑/白名單的策略例如可以是下述配置(I)當(dāng)前網(wǎng)站只允許跳轉(zhuǎn)或鏈接到白名單中包含的網(wǎng)站;⑵不允許跳轉(zhuǎn)或者鏈接到黑名單中包含的網(wǎng)站。進(jìn)一步,就域名黑/白名單的具體實(shí)現(xiàn)方式來說,現(xiàn)有許多網(wǎng)站都采用正則表達(dá)式的方式來進(jìn)行黑/白名單的匹配,一個(gè)白名單的正則表達(dá)式配置實(shí)例包括以下步驟SI、首先配置一份xml格式的白名單,將所有受信任的一級(jí)域名全部配置在xml文件中;S2、需要進(jìn)行白名單匹配時(shí),將上述的白名單全部轉(zhuǎn)化為正則表達(dá)式,然后將其存儲(chǔ)在內(nèi)存中;
      S3、從待檢驗(yàn)的URL中截取出域名,然后將域名逐個(gè)與白名單中的規(guī)則做正則表達(dá)式匹配;如果這個(gè)域名最終與其中某一條規(guī)則相匹配,表示該域名在白名單內(nèi),系統(tǒng)終止匹配,認(rèn)為該URL可以訪問;如果沒有一條規(guī)則匹配,則表示該域名不在白名單內(nèi),從而不允許訪問該URL或作出警告。黑名單的配置方式在具體實(shí)現(xiàn)上與上述白名單非常類似,因此本申請說明書中下文一律以過濾名單來泛指黑/白名單。接續(xù),上述按正則表達(dá)式實(shí)現(xiàn)的過濾名單配置方式雖然能夠保證檢查的準(zhǔn)確性,然而也存在一定的缺陷。一方面,按條存儲(chǔ)的過濾名單不便于維護(hù),而且也占用存儲(chǔ)空間;另一方面,正則表達(dá)式的匹配過程非常消耗資源,在遇到”、
      等一些貪婪匹配符號(hào)時(shí)很容易造成大量的回溯,使檢查效率出現(xiàn)成百萬倍的下降;再一方面,正則表達(dá)式采用逐條規(guī)則匹配的方式,在面對(duì)目前網(wǎng)站內(nèi)動(dòng)輒數(shù)以十億級(jí)的檢查量時(shí)往往力不從心,甚至?xí)诙虝r(shí)間內(nèi)造成服務(wù)器硬件性能的急劇降低;另外,正則表達(dá)式本身還存在不易調(diào)試、編寫困難的問題。

      發(fā)明內(nèi)容
      本申請的實(shí)施例旨在提供一種域名過濾名單存儲(chǔ)、匹配方法及裝置,以解決常用的正則表達(dá)式逐條存儲(chǔ)、匹配的域名過濾方式存在的上述問題。為實(shí)現(xiàn)上述目的,根據(jù)本申請實(shí)施例的第一方面,提供了一種由計(jì)算機(jī)實(shí)現(xiàn)的域名過濾名單存儲(chǔ)方法,包括以下步驟Sll.將過濾名單內(nèi)配置的域名按預(yù)定次序轉(zhuǎn)換為字符串;S12.采用樹的方式根據(jù)所述字符串生成名單樹;在所述名單樹中,所述字符串中的字符依次作為各級(jí)樹節(jié)點(diǎn),且所述樹節(jié)點(diǎn)具有第一屬性和第二屬性,所述第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),所述第二屬性用于表示所述字符串是否結(jié)束。根據(jù)本申請實(shí)施例的第二方面,上述域名過濾名單存儲(chǔ)方法中所述步驟Sll包括將所述過濾名單內(nèi)配置的域名按逆序轉(zhuǎn)換為字符串。所述步驟S12包括S121.采用樹的方式根據(jù)所述字符串中的字符依次生成各級(jí)樹節(jié)點(diǎn);S122.在根據(jù)所述字符串生成的最低一級(jí)樹節(jié)點(diǎn)之后添加一個(gè)與字符”對(duì)應(yīng)的標(biāo)記樹節(jié)點(diǎn),得到所述名單樹;其中,所述名單樹中的樹節(jié)點(diǎn)還具有第三屬性,所述第三屬性用于表示是否所有子域名均符合過濾條件;且所述標(biāo)記樹節(jié)點(diǎn)的第三屬性的值表示所有子域名均符合過濾條件,所述名單樹中其他樹節(jié)點(diǎn)的第三屬性的值表示非所有子域名均符合過濾條件。其中,所述步驟S121中根據(jù)所述字符串生成的最低一級(jí)樹節(jié)點(diǎn)的第二屬性的值表示字符串結(jié)束,所述名單樹中其他樹節(jié)點(diǎn)的第二屬性的值表示字符串未結(jié)束。對(duì)應(yīng)于上述根據(jù)本申請實(shí)施例第一方面的域名過濾名單存儲(chǔ)方法,本申請的實(shí)施例還提供一種由計(jì)算機(jī)實(shí)現(xiàn)的域名過濾名單匹配方法,包括以下步驟S81.將待匹配的域名按預(yù)定次序轉(zhuǎn)換為對(duì)象字符串; S82.依次將所述對(duì)象字符串中的對(duì)象字符與名單樹的各級(jí)樹節(jié)點(diǎn)所對(duì)應(yīng)的目標(biāo)字符進(jìn)行比較,確認(rèn)當(dāng)前的對(duì)象字符與目標(biāo)字符是否相符,如果不相符則確定匹配失??;如果相符則繼續(xù)所述步驟S82比較下一對(duì)象字符,直至確認(rèn)所述對(duì)象字符串中最后一個(gè)對(duì)象字符與對(duì)應(yīng)的目標(biāo)字符相符則確定匹配成功;
      其中,所述名單樹具有由所述目標(biāo)字符構(gòu)成的所述各級(jí)樹節(jié)點(diǎn),且所述樹節(jié)點(diǎn)具有第一屬性和第二屬性,所述第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),所述第二屬性用于表示所述字符串是否結(jié)束;所述目標(biāo)字符包括將過濾名單內(nèi)配置的域名按所述預(yù)定次序轉(zhuǎn)換而成的字符串中的各個(gè)字符。對(duì)應(yīng)于上述根據(jù)本申請實(shí)施例第二方面的域名過濾名單存儲(chǔ)方法,本申請的實(shí)施例也提供一種由計(jì)算機(jī)實(shí)現(xiàn)的域名過濾名單匹配方法,包括以下步驟S91.將待匹配的域名按逆序轉(zhuǎn)換為對(duì)象字符串;S92.依次將所述對(duì)象字符串中的對(duì)象字符與名單樹的各級(jí)樹節(jié)點(diǎn)所對(duì)應(yīng)的目標(biāo)字符進(jìn)行比較,確認(rèn)當(dāng)前的對(duì)象字符與目標(biāo)字符是否相符,如果不相符則確定匹配失??;如果相符則繼續(xù)步驟S93 ; S93.確認(rèn)當(dāng)前比較的樹節(jié)點(diǎn)的第三屬性的值是否表示所有子域名均符合過濾條件,如果是則確定匹配成功,否則返回所述步驟S92匹配下一對(duì)象字符,直至所述對(duì)象字符串中的最后一個(gè)對(duì)象字符時(shí)繼續(xù)步驟S94 ;S94.確認(rèn)當(dāng)前比較的樹節(jié)點(diǎn)的第二屬性的值是否表示字符串結(jié)束,如果是則確定匹配成功,否則確定匹配失?。黄渲?,所述名單樹具有由所述目標(biāo)字符構(gòu)成的所述各級(jí)樹節(jié)點(diǎn),且所述樹節(jié)點(diǎn)具有第一屬性、第二屬性和第三屬性,所述第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),所述第二屬性用于表示所述字符串是否結(jié)束,所述第三屬性用于表示是否所有子域名均符合過濾條件;所述目標(biāo)字符包括將過濾名單內(nèi)配置的域名按逆序轉(zhuǎn)換而成的字符串中的各個(gè)字符以及與作為標(biāo)記樹節(jié)點(diǎn)的最低一級(jí)樹節(jié)點(diǎn)對(duì)應(yīng)的字符,,·’且所述標(biāo)記樹節(jié)點(diǎn)的第三屬性的值表示所有子域名均符合過濾條件,所述名單樹中其他樹節(jié)點(diǎn)的第三屬性的值表示非所有子域名均符合過濾條件。為實(shí)現(xiàn)上述目的,根據(jù)本申請實(shí)施例的第一方面,本申請的實(shí)施例還提供了一種域名過濾名單存儲(chǔ)裝置,包括轉(zhuǎn)換單元,用于將過濾名單內(nèi)配置的域名按預(yù)定次序轉(zhuǎn)換為字符串;樹生成單元,用于采用樹的方式根據(jù)所述字符串生成名單樹;在所述名單樹中,所述字符串中的字符依次作為各級(jí)樹節(jié)點(diǎn),且所述樹節(jié)點(diǎn)具有第一屬性和第二屬性,所述第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),所述第二屬性用于表示所述字符串是否結(jié)束。根據(jù)本申請實(shí)施例的第二方面,上述域名過濾名單存儲(chǔ)裝置中所述轉(zhuǎn)換單元是將所述過濾名單內(nèi)配置的域名按逆序轉(zhuǎn)換為字符串。其中,所述樹生成單元包括節(jié)點(diǎn)設(shè)置子單元,用于采用樹的方式根據(jù)所述字符串中的字符依次生成各級(jí)樹節(jié)點(diǎn);節(jié)點(diǎn)補(bǔ)充子單元,用于在根據(jù)所述字符串生成的最低一級(jí)樹節(jié)點(diǎn)之后添加一個(gè)與字符”對(duì)應(yīng)的標(biāo)記樹節(jié)點(diǎn),得到所述名單樹;其中,所述名單樹中的樹節(jié)點(diǎn)還具有第三屬性,所述第三屬性用于表示是否所有子域名均符合過濾條件;且所述標(biāo)記樹節(jié)點(diǎn)的第三屬性的值表示所有子域名均符合過濾條件,所述名單樹中其他樹節(jié)點(diǎn)的第三屬性的值表示非所有子域名均符合過濾條件。對(duì)應(yīng)于上述根據(jù)本申請第一方面的域名過濾名單存儲(chǔ)裝置,本申請的實(shí)施例還提供一種域名過濾名單匹配裝置,其包括
      對(duì)象字符轉(zhuǎn)換單元,用于將待匹配的域名按預(yù)定次序轉(zhuǎn)換為對(duì)象字符串;字符比較單元,用于依次將所述對(duì)象字符串中的對(duì)象字符與名單樹的各級(jí)樹節(jié)點(diǎn)所對(duì)應(yīng)的目標(biāo)字符進(jìn)行比較,確認(rèn)當(dāng)前的對(duì)象字符與目標(biāo)字符是否相符,如果不相符則確定匹配失??;如果相符則繼續(xù)比較下一對(duì)象字符,直至確認(rèn)所述對(duì)象字符串中最后一個(gè)對(duì)象字符與對(duì)應(yīng)的目標(biāo)字符相符則確定匹配成功;其中,所述名單樹具有由所述目標(biāo)字符構(gòu)成的所述各級(jí)樹節(jié)點(diǎn),且所述樹節(jié)點(diǎn)具有第一屬性和第二屬性,所述第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),所述第二屬性用于表示所述字符串是否結(jié)束;所述目標(biāo)字符包括將過濾名單內(nèi)配置的域名按所述預(yù)定次序轉(zhuǎn)換而成的字符串中的各個(gè)字符。對(duì)應(yīng)于上述根據(jù)本申請第二方面的域名過濾名單存儲(chǔ)裝置,本申請的實(shí)施例也提供了一種域名過濾名單匹配裝置,其包括對(duì)象字符轉(zhuǎn)換單元、字符比較單元、屬性值確認(rèn)單元,
      所述對(duì)象字符轉(zhuǎn)換單元用于將待匹配的域名按逆序轉(zhuǎn)換為對(duì)象字符串;所述字符比較單元用于依次將所述對(duì)象字符串中的對(duì)象字符與名單樹的各級(jí)樹節(jié)點(diǎn)所對(duì)應(yīng)的目標(biāo)字符進(jìn)行比較,確認(rèn)當(dāng)前的對(duì)象字符與目標(biāo)字符是否相符,如果不相符則確定匹配失敗;如果相符則由所述屬性值確認(rèn)單元確認(rèn)所述字符比較單元當(dāng)前比較的樹節(jié)點(diǎn)的第三屬性的值是否表示所有子域名均符合過濾條件,如果是則確定匹配成功,否則由所述字符比較單元繼續(xù)匹配下一對(duì)象字符,直至所述對(duì)象字符串中的最后一個(gè)對(duì)象字符時(shí),由所述屬性值確認(rèn)單元確認(rèn)所述字符比較單元當(dāng)前比較的樹節(jié)點(diǎn)的第二屬性的值是否表示字符串結(jié)束,如果是則確定匹配成功,否則確定匹配失??;其中,所述名單樹具有由所述目標(biāo)字符構(gòu)成的所述各級(jí)樹節(jié)點(diǎn),且所述樹節(jié)點(diǎn)具有第一屬性、第二屬性和第三屬性,所述第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),所述第二屬性用于表示所述字符串是否結(jié)束,所述第三屬性用于表示是否所有子域名均符合過濾條件;所述目標(biāo)字符包括將過濾名單內(nèi)配置的域名按逆序轉(zhuǎn)換而成的字符串中的各個(gè)字符以及與作為標(biāo)記樹節(jié)點(diǎn)的最低一級(jí)樹節(jié)點(diǎn)對(duì)應(yīng)的字符”;且所述標(biāo)記樹節(jié)點(diǎn)的第三屬性的值表示所有子域名均符合過濾條件,所述名單樹中其他樹節(jié)點(diǎn)的第三屬性的值表示非所有子域名均符合過濾條件。由上述技術(shù)方案可知,本申請的實(shí)施例采用樹結(jié)構(gòu)對(duì)域名的過濾名單進(jìn)行存儲(chǔ),不僅能夠節(jié)省大數(shù)量級(jí)過濾名單的存儲(chǔ)空間,而且利用樹結(jié)構(gòu)的過濾名單進(jìn)行匹配更能有效地縮短域名匹配所需的時(shí)間,從而大大提升了服務(wù)器的性能;并且樹結(jié)構(gòu)的域名過濾名單機(jī)制可以適用于任何平臺(tái),保證了準(zhǔn)確性和良好的可調(diào)試性。另一方面,本申請的實(shí)施例采用以域名字符串為基礎(chǔ)逆序構(gòu)造名單樹的方式,相應(yīng)也按照逆序?qū)⒋ヅ溆蛎膶?duì)象字符串與名單樹的各級(jí)樹節(jié)點(diǎn)進(jìn)行比對(duì),如此能夠確保域名過濾名單內(nèi)一級(jí)域名下的所有子域名迅速通過匹配,進(jìn)一步大大縮短了域名匹配的平均時(shí)間,從而能夠顯著地提升服務(wù)器的性能。


      圖I為本申請域名過濾名單存儲(chǔ)方法的實(shí)施例一流程圖2為本申請域名過濾名單匹配方法的實(shí)施例一流程圖;圖3為本申請域名過濾名單存儲(chǔ)方法的實(shí)施例二流程圖;圖4為圖3實(shí)施例中所得到名單樹實(shí)例的示意圖;圖5為本申請域名過濾名單匹配方法的實(shí)施例二流程圖;圖6為本申請域名過濾名單存儲(chǔ)裝置的實(shí)施例結(jié)構(gòu)圖;圖7為本申請域名過濾名單匹配裝置的實(shí)施例結(jié)構(gòu)圖。
      具體實(shí)施例方式下面將詳細(xì)描述本申請的具體實(shí)施例。應(yīng)當(dāng)注意,這里描述的實(shí)施例只用于舉例說明,并不用于限制本申請。圖I為本申請由計(jì)算機(jī)實(shí)現(xiàn)的域名過濾名單存儲(chǔ)方法實(shí)施例一的流程圖,如圖所示,本實(shí)施例的域名過濾名單存儲(chǔ)方法包括如下步驟SlOl S102。S101.將過濾名單內(nèi)配置的域名按預(yù)定次序轉(zhuǎn)換為字符串;過濾名單內(nèi)配置的域名可能有多條,本步驟SlOl即針對(duì)其所配置的每條域名進(jìn)行字符串的轉(zhuǎn)換。S102.采用樹的方式根據(jù)所述字符串生成名單樹;在所述名單樹中,所述字符串中的字符依次作為各級(jí)樹節(jié)點(diǎn),且所述樹節(jié)點(diǎn)具有 第一屬性和第二屬性,所述第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),所述第二屬性用于表示所述字符串是否結(jié)束。按照目前一級(jí)域名的規(guī)則,只允許英文26個(gè)字母和10個(gè)阿拉伯?dāng)?shù)字以及橫杠可以用作域名不能出現(xiàn)在域名的最前或最后),并且域名最長不得超過63個(gè)字符,再加上域名中間的點(diǎn)”,實(shí)際上所有的域名其實(shí)都可視為上述38個(gè)字符的排列組合。因此,無論過濾名單內(nèi)配置的域名有多少條,都可以通過構(gòu)建唯一一個(gè)名單樹(此時(shí)可以設(shè)置一個(gè)空白節(jié)點(diǎn)作為根節(jié)點(diǎn),后續(xù)將有詳細(xì)描述)來表示出所有域名,這也是本申請域名過濾名單存儲(chǔ)及匹配方法的立意基礎(chǔ)。圖2為本申請由計(jì)算機(jī)實(shí)現(xiàn)的域名過濾名單匹配方法實(shí)施例一的流程圖,本實(shí)施例的域名匹配方法與上述域名過濾名單存儲(chǔ)方法實(shí)施例一相對(duì)應(yīng),如圖2所示,其包括如下步驟S201 S203。S201.將待匹配的域名按預(yù)定次序轉(zhuǎn)換為對(duì)象字符串;在一個(gè)實(shí)施例中,步驟SlOl之前還可以包括對(duì)待匹配的URL進(jìn)行分析并從中截取出對(duì)象域名的步驟,其具體實(shí)現(xiàn)細(xì)節(jié)在本領(lǐng)域現(xiàn)有技術(shù)中多有揭示,此處不再贅述。另外,本步驟中轉(zhuǎn)換待匹配域名的預(yù)定次序也即上述步驟SlOl中轉(zhuǎn)換過濾名單內(nèi)所配置域名的次序,需要說明的是,以逆序作為上述預(yù)定次序的情況將在下文實(shí)施例中詳細(xì)闡述,而在以順序作為上述預(yù)定次序的情況中,為了后續(xù)域名匹配過程的順利進(jìn)行,上述從URL中截取對(duì)象域名時(shí)可以進(jìn)行特殊處理。例如,考慮到域名的構(gòu)成規(guī)則,可以僅從URL中截取倒數(shù)第2(或3)個(gè)字符”之后的域名字符串作為對(duì)象字符串,如此一來便可以大大提高后續(xù)域名匹配的效率,這種域名截取方式在現(xiàn)有技術(shù)的域名逐條匹配機(jī)制中也有所涉及,因此此處也不再加以贅述。另外需要說明的是,在本申請說明書中需要對(duì)域名匹配過程加以說明時(shí),為便于區(qū)分,統(tǒng)一將待匹配的域名(也稱為對(duì)象域名)所對(duì)應(yīng)的字符(串)稱為對(duì)象字符(串),而將過濾名單內(nèi)配置的域名(也稱為目標(biāo)域名)所對(duì)應(yīng)的字符(串)稱為目標(biāo)字符(串)。S202.依次將對(duì)象字符串中的對(duì)象字符與名單樹的各級(jí)樹節(jié)點(diǎn)所對(duì)應(yīng)的目標(biāo)字符進(jìn)行比較;本步驟所述的名單樹具有由所述目標(biāo)字符構(gòu)成的各級(jí)樹節(jié)點(diǎn),且樹節(jié)點(diǎn)具有第一屬性和第二屬性,其中,第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),第二屬性用于表示字符串是否結(jié)束;進(jìn)一步,所述的目標(biāo)字符包括將過濾名單內(nèi)配置的域名按預(yù)定次序轉(zhuǎn)換而成的字符串中的各個(gè)字符。在一個(gè)實(shí)施例中,本步驟S202中用到的名單樹可以直接是上述域名過濾名單存儲(chǔ)方法實(shí)施例一中所生成的名單樹。S203.確認(rèn)當(dāng)前的對(duì)象字符與目標(biāo)字符是否相符;如果不相符則確定匹配失敗;如果相符則轉(zhuǎn)步驟S202比較下一對(duì)象字符,直至所述對(duì)象字符串中最后一個(gè)對(duì)象字符與對(duì)應(yīng)的目標(biāo)字符確認(rèn)相符則確定匹配成功。 具體而言,如果對(duì)象域名符合過濾名單中配置的某條域名規(guī)則,那么前者所轉(zhuǎn)換成的對(duì)象字符串便能夠依次在名單樹的各級(jí)樹節(jié)點(diǎn)中得到匹配,從而確定域名匹配成功;反之,如果對(duì)象字符串在名單樹的某級(jí)樹節(jié)點(diǎn)中不能通過匹配,便能夠確定該對(duì)象域名不符合過濾名單中配置的所有域名規(guī)則,從而確定域名匹配失敗。由上所述可知,本申請的域名過濾名單匹配方法在對(duì)未知URL中包含的域名進(jìn)行匹配時(shí),無需與域名過濾名單中的域名進(jìn)行逐條的匹配,而是逐級(jí)與名單樹的樹節(jié)點(diǎn)之間進(jìn)行單純的字符匹配,也即,由于過濾名單中配置的所有域名都構(gòu)建在一個(gè)名單樹中,所以單個(gè)對(duì)象域名匹配所需的時(shí)間可以視作只與過濾名單中配置的域名的平均字符長度(也即生成名單樹的目標(biāo)字符串的平均長度)相關(guān),而與過濾名單中配置的域名個(gè)數(shù)無關(guān)。假設(shè)過濾名單中各域名的平均字符長度為n,則單個(gè)對(duì)象域名平均只需要η次匹配即可完成匹配過程。反觀正則表達(dá)式的匹配過程,其針對(duì)單個(gè)對(duì)象域名的平均匹配時(shí)間則與過濾名單中域名的數(shù)量息息相關(guān)。假設(shè)過濾名單中的域名一共為m個(gè),并且每執(zhí)行一個(gè)正則表達(dá)式匹配的時(shí)間為P,則針對(duì)單個(gè)對(duì)象域名的匹配最快為一次匹配成功,其執(zhí)行時(shí)間為P,最慢為全部不匹配,其執(zhí)行時(shí)間為mp,取兩者的平均值(m+l)p/2即為單個(gè)對(duì)象域名的平均匹配時(shí)間。由于P的值根據(jù)目前正則表達(dá)式的執(zhí)行效率基本平穩(wěn),但過濾名單內(nèi)規(guī)則域名的個(gè)數(shù)卻隨著業(yè)務(wù)和全球Internet上站點(diǎn)爆炸式的增長而不斷增加,所以理論上m的上限值為目前全球的所有站點(diǎn)的域名總和,這一數(shù)據(jù)非常巨大,因此上述平均匹配時(shí)間表達(dá)式表明,正則表達(dá)式的匹配性能會(huì)存在極大的隱患。綜上所述,由于與過濾名單中目標(biāo)域名的個(gè)數(shù)相比,域名的長度通常是十分小的,并且一般域名的長度還存在著一定的限制(大多數(shù)域名都在10 20個(gè)字符之間),因此,與正則表達(dá)式的匹配過程相比,本申請的域名過濾名單匹配方法能夠大大減少單個(gè)域名匹配所需的時(shí)間,相應(yīng)地,其針對(duì)某個(gè)頁面進(jìn)行批量域名匹配的時(shí)間縮短效果也相當(dāng)明顯。另一方面,由于包括Java在內(nèi)的各平臺(tái)對(duì)樹結(jié)構(gòu)的支持都比較好,因此本申請的域名過濾名單存儲(chǔ)方法及域名匹配方法可以很好的適用于各平臺(tái)架構(gòu),同時(shí)能夠保證很高程度的準(zhǔn)確性和良好的可調(diào)試性。圖3為本申請由計(jì)算機(jī)實(shí)現(xiàn)的域名過濾名單存儲(chǔ)方法實(shí)施例二的流程圖,如圖所示,本實(shí)施例的域名過濾名單存儲(chǔ)方法包括如下步驟S301 S304。S301.創(chuàng)建包括所有能夠用作域名的可用字符的數(shù)組;上文實(shí)施例中已有述及,目前所有的域名都可以視作38個(gè)字符的一個(gè)排列組合,將這38個(gè)字符按一定次序排列,例如“O”、…“9”、“a”、…“ζ”、“· 并依次賦予O 37的數(shù)字下標(biāo)(例如賦予字符“m”的數(shù)字標(biāo)識(shí)為22),全部保存在一個(gè)數(shù)組內(nèi),如此便可利用指向該數(shù)組內(nèi)一個(gè)數(shù)字引用來表示后續(xù)所生成 名單樹的一個(gè)樹節(jié)點(diǎn)。S302.將過濾名單內(nèi)配置的某條域名按逆序轉(zhuǎn)換為全部小寫的字符串;轉(zhuǎn)換為全部小寫的字符串是因?yàn)橛蛎粎^(qū)分大小寫,而按逆序進(jìn)行轉(zhuǎn)換是為了保證過濾名單內(nèi)一級(jí)域名下的所有子域名能夠快速地通過后續(xù)的匹配過程,這點(diǎn)在后文實(shí)施例中還有詳細(xì)描述。以假設(shè)為過濾名單中配置的域名“A. com”為例,經(jīng)過步驟S302的轉(zhuǎn)換,得到的字符串即為“moc.a”。S303.采用樹的方式根據(jù)字符串中的字符依次生成各級(jí)樹節(jié)點(diǎn);為保證過濾名單中配置的所有域名能夠存儲(chǔ)在一個(gè)樹結(jié)構(gòu)中,在一個(gè)實(shí)施例中,可以使用一個(gè)空白節(jié)點(diǎn)作為本步驟所生成樹的根節(jié)點(diǎn)。前文實(shí)施例中提及,每個(gè)樹節(jié)點(diǎn)都具有用于表示指向下一級(jí)樹節(jié)點(diǎn)的第一屬性和用于表示字符串是否結(jié)束的第二屬性,以根節(jié)點(diǎn)為例,其第一屬性即表示指向步驟S302中所得到逆序字符串的第一個(gè)字符,而第二屬性(后文以“IsOver”來指代)的值則表示該節(jié)點(diǎn)并非自字符串的最后一個(gè)字符,例如可以給 “ IsOver” 賦值為 “false”。接續(xù)以步驟S302得到的字符串“moc. a”為例,本步驟S303即從根節(jié)點(diǎn)開始,首先讀取字符串的第一個(gè)字符“m”,并根據(jù)該字符在步驟S301所建數(shù)組中的數(shù)字下標(biāo)22,創(chuàng)建由根節(jié)點(diǎn)指向所得到數(shù)字下標(biāo)22的數(shù)組引用作為根節(jié)點(diǎn)的第一級(jí)子節(jié)點(diǎn),并照此方式一直生成到與字符串的最后一個(gè)字符“a”對(duì)應(yīng)的最低一級(jí)子節(jié)點(diǎn)。與之前子節(jié)點(diǎn)不同的是,本步驟中所生成最低一級(jí)子節(jié)點(diǎn)(對(duì)應(yīng)字符“a”)的“IsOver”屬性值表示字符串到此結(jié)束,例如可以給“IsOver”賦值為“true”,因而表示從根節(jié)點(diǎn)到該節(jié)點(diǎn)的字符串已經(jīng)成為一個(gè)完整的域名。S304.在根據(jù)字符串生成的最低一級(jí)樹節(jié)點(diǎn)之后添加一個(gè)與字符”對(duì)應(yīng)的標(biāo)記樹節(jié)點(diǎn),得到名單樹;如上所述,步驟S303所得到的樹結(jié)構(gòu)已經(jīng)能夠表示一個(gè)完整的域名,但為了保證該域名的所有子域名都能夠通過名單樹的匹配,最終的名單樹在步驟S303所得到樹結(jié)構(gòu)的最低一級(jí)樹節(jié)點(diǎn)之后還需要添加一個(gè)與字符”對(duì)應(yīng)的標(biāo)記樹節(jié)點(diǎn)。在一個(gè)實(shí)施例中,可以設(shè)置所有樹節(jié)點(diǎn)還具有用于表示是否所有子域名均符合過濾條件的第三屬性(后文均以“anySub”指代),并且將上述標(biāo)記樹節(jié)點(diǎn)的第三屬性的值設(shè)置為表示所有子域名均符合過濾條件,例如可以給“anySub”賦值為“true”。接續(xù)步驟S303中的具體實(shí)例,本步驟S304即在字符“a”之后添加一個(gè)字符”的節(jié)點(diǎn),并給該節(jié)點(diǎn)的anySub屬性賦值為“true”,從而表示該域名的所有子域名都在白名單內(nèi),也即表示a. com”均符合過濾名單的匹配要求。經(jīng)過上述步驟S301 S304之后得到的名單樹實(shí)例如圖4所示,在該名單樹中包括頂部一個(gè)根節(jié)點(diǎn)以及依次對(duì)應(yīng)字符“m” (數(shù)字下標(biāo)22)、“ο” (數(shù)字下標(biāo)24)、“c” (數(shù)字下標(biāo)12)、“. ” (數(shù)字下標(biāo)36)、“a” (數(shù)字下標(biāo)10)、“. ” (數(shù)字下標(biāo)36)的六級(jí)子節(jié)點(diǎn),并且所有樹節(jié)點(diǎn)均具有用于表示指向下一級(jí)樹節(jié)點(diǎn)的第一屬性(可以參考圖中箭頭所示,而最后一級(jí)子節(jié)點(diǎn)的第一屬性例如可以取值為空),并且均具有第二屬性“IsOver”以及第三屬性“anySub”。其中,第5級(jí)子節(jié)點(diǎn)(對(duì)應(yīng)字符“a”)的“ IsOver”屬性取值為“true”,從而表示以過濾名單中的域名轉(zhuǎn)換而成的字符串到此結(jié)束,其他樹節(jié)點(diǎn)的“IsOver”屬性則均取值為“false” ;第6級(jí)子節(jié)點(diǎn)(對(duì)應(yīng)字符”,也即標(biāo)記樹節(jié)點(diǎn)的“anySub”屬性取值為“true”,從而表示域名“a. com”的所有子域名a. com”均符合過濾名單的匹配要求,其他樹節(jié)點(diǎn)的“anySub”屬性則均取值為“false”。圖4所示名單樹的樹結(jié)構(gòu)在各平臺(tái)上都能得到很好的支持,在一個(gè)實(shí)施例中,名單樹可以在Java平臺(tái)上實(shí)現(xiàn),而以Java語言實(shí)現(xiàn)的一個(gè)樹節(jié)點(diǎn)代碼如下所示
      class Node {
      private static final int capacity = 38; public Node口next;
      public booleanisOver;
      public booleananySub;
      public NodeQ {
      next = new Node [capacity];
      }
      }參考以上代碼可以理解,與本領(lǐng)域慣用的對(duì)域名逐條進(jìn)行存儲(chǔ)的過濾名單管理方式相比,本實(shí)施例域名過濾名單存儲(chǔ)方法的名單樹具有較優(yōu)的存儲(chǔ)結(jié)構(gòu),在面對(duì)大數(shù)量級(jí)的域名所構(gòu)成的過濾名單時(shí),本實(shí)施例采用的樹結(jié)構(gòu)更加便于過濾名單的維護(hù)且能夠節(jié)省存儲(chǔ)空間,而且更重要的是有利于簡化后續(xù)的域名匹配過程,關(guān)于這一點(diǎn)在域名過濾名單的匹配方法實(shí)施例中有明顯體現(xiàn)。圖5為本申請由計(jì)算機(jī)實(shí)現(xiàn)的域名過濾名單匹配方法實(shí)施例二的流程圖,本實(shí)施例的域名過濾名單匹配方法與上述域名過濾名單存儲(chǔ)方法實(shí)施例二相對(duì)應(yīng),如圖5所示,其包括如下步驟S501 S505。S501、將待匹配的域名按逆序轉(zhuǎn)換為全部小寫的對(duì)象字符串;與前文實(shí)施例類似,本步驟之前還可以包括一個(gè)從待匹配的URL中截取出對(duì)象域名的步驟。以下面 4 個(gè) URL 為例http ://ad. com/1, htm http: //c. ab. com/1, htm http: //ab. com/1, htm http: //b. com/1, htm ;經(jīng)過域名截取以及本步驟S501的轉(zhuǎn)換后,得到的4個(gè)對(duì)象字符串分別為moc. da ;moc. ba. c ;moc. ba ;moc. b。并且假設(shè)過濾名單中僅有一條規(guī)則域名AB. com。S502、依次將對(duì)象字符串中的第i個(gè)對(duì)象字符與名單樹中第i級(jí)子節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)字符進(jìn)行比較;本步驟用于確認(rèn)名單樹所有的第i級(jí)子節(jié)點(diǎn)中是否存在與當(dāng)前比較的第i個(gè)對(duì)象字符相符的目標(biāo)字符,如果不存在,則表明匹配失敗,從而也能夠確認(rèn)對(duì)象域名的匹配失??;如果存在,則說明當(dāng)前對(duì)象字符匹配成功,可以繼續(xù)步驟S503進(jìn)行后面的匹配過程。本步驟S502所述的名單樹具有由所述目標(biāo)字符構(gòu)成的各級(jí)樹節(jié)點(diǎn),且這些樹節(jié)點(diǎn)具有第一屬性、第二屬性(anySub)和第三屬性(IsOver),其中,第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),第二屬性用于表示字符串是否結(jié)束,第三屬性用于表示是否所有子域名均符合過濾條件。并且,上述目標(biāo)字符包括將過濾名單內(nèi)配置的域名按逆序轉(zhuǎn)換而成的字符串中的各個(gè)字符以及與作為標(biāo)記樹節(jié)點(diǎn)的最低一級(jí)樹節(jié)點(diǎn)對(duì)應(yīng)的字符”;且標(biāo)記樹節(jié)點(diǎn)的第三屬性的值表示所有子域名均符合過濾條件,名單樹中其他樹節(jié)點(diǎn)的第三屬性的值表示非所有子域名均符合過濾條件。例如,步驟S501中所述過濾名單中唯一的規(guī)則域名“AB. com”所生成名單樹對(duì)應(yīng)的目標(biāo)字符串為“moc. ba”。在一個(gè)實(shí)施例中,本步驟S502中用到的名單樹可以是上述域名過濾名單存儲(chǔ)方法實(shí)施例二中所生成的名單樹。接續(xù),以步驟S501中所述的4個(gè)對(duì)象字符串為例,其中moc. da在本步驟S502中匹配到第5個(gè)對(duì)象字符“d”時(shí),名單樹的第5級(jí)子節(jié)點(diǎn)為“b”,因此無法匹配成功,從而得出該對(duì)象域名匹配失敗從而不符合過濾名單過濾條件的結(jié)果;而其他3個(gè)對(duì)象字符串moc.ba. c ;moc. ba ;moc. b都能通過本步驟的匹配。S503、確認(rèn)當(dāng)前比較的樹節(jié)點(diǎn)的anySub屬性是否為true ;是則確定匹配成功,否 則繼續(xù)步驟S504 ;本步驟用于確認(rèn)對(duì)象域名是否屬于過濾名單中目標(biāo)域名的子域名,如果能夠得到“是”的確認(rèn)結(jié)果,那么當(dāng)前比較的對(duì)象域名顯然應(yīng)該通過匹配,得到匹配成功的結(jié)論,反之則應(yīng)繼續(xù)步驟S504的后續(xù)匹配過程。接續(xù)以上述剩余的3個(gè)對(duì)象字符串為例,字符串moc. ba. c在比較到第7個(gè)字符 ”時(shí),名單樹第7級(jí)子節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)字符也為”,因此能順利通過上述步驟S502的匹
      配,并且本步驟S503中能夠確認(rèn)當(dāng)前比較的樹節(jié)點(diǎn)”的anySub屬性為true,從而表示該對(duì)象字符串moc. ba. c所對(duì)應(yīng)的對(duì)象域名c. ab. com屬于過濾名單中所配置的某條規(guī)則域名(即AB. com)的子域名,因此表明該對(duì)象域名能夠成功通過匹配。從這里,也可以看出前述過濾名單存儲(chǔ)方法實(shí)施例二的步驟S304中添加標(biāo)記樹節(jié)點(diǎn)的用意。S504、將i的值加上1,返回步驟S502繼續(xù)下一對(duì)象字符的匹配,直至對(duì)象字符串循環(huán)結(jié)束;如前述步驟中的實(shí)例所述的,經(jīng)過之前的匹配,開始的4個(gè)對(duì)象字符串中,moc. da在進(jìn)行到第5個(gè)對(duì)象字符的匹配時(shí)止步于步驟S502并得到匹配失敗的結(jié)果;moC. ba. c在進(jìn)行到第7個(gè)對(duì)象字符的匹配時(shí),于步驟S503中便能夠得到匹配成功的結(jié)果,從而無需再進(jìn)行后續(xù)的匹配。而moc. ba和moc. b則一直要進(jìn)行到對(duì)象字符串循環(huán)結(jié)束。S505、確認(rèn)當(dāng)前比較的樹節(jié)點(diǎn)的IsOver屬性值是否為true,是則確定匹配成功,否則確定匹配失敗。在對(duì)象字符串的各個(gè)字符依次經(jīng)過上述步驟S502 S504的匹配后,經(jīng)過本步驟S505能夠確認(rèn)對(duì)象域名是否能夠符合過濾名單中的目標(biāo)域名規(guī)則。具體而言,當(dāng)對(duì)象字符串循環(huán)結(jié)束,而相應(yīng)的當(dāng)前比較的樹節(jié)點(diǎn)的IsOver屬性值為true時(shí),貝U表明對(duì)象域名與名單樹所對(duì)應(yīng)過濾名單里的目標(biāo)域名完全一致,因此能夠確定匹配成功;反之,如果對(duì)象字符串已經(jīng)結(jié)束循環(huán),而當(dāng)前比較的樹節(jié)點(diǎn)的IsOver屬性值為false,此時(shí)表明對(duì)象域名與目標(biāo)域名并不一致,而且已經(jīng)由步驟S503確認(rèn)其并非屬于子域名,因此能夠確定匹配失敗。接續(xù)以剩余的2個(gè)對(duì)象域名moc. ba和moc. b為例域名moc. ba直至匹配到第6個(gè)字符結(jié)束循環(huán)時(shí),名單樹中當(dāng)前比較的樹節(jié)點(diǎn)“a”的IsOver屬性值剛好為true,因此確定匹配成功;而域名moc. b直至匹配到第5個(gè)字符結(jié)束循環(huán)時(shí),名單樹中當(dāng)前比較的樹節(jié)點(diǎn)“b”的IsOver屬性值仍為false,因此確定匹配失敗。在上述實(shí)施例二中,本申請的域名過濾名單匹配方法在對(duì)未知URL中包含的域名進(jìn)行匹配時(shí),之前利用域名倒序構(gòu)建的目標(biāo)字符串及其相應(yīng)的名單樹,能夠幫助快速、準(zhǔn)確地確認(rèn)對(duì)象域名與目標(biāo)域名是否相符;這是由于其充分利用了域名的構(gòu)造規(guī)則,能夠避免消耗對(duì)對(duì)象域名不相關(guān)部分進(jìn)行匹配的時(shí)間。以對(duì)象域名為“xxxxxba. com”、目標(biāo)域名為“A. com”為例,倒序的匹配過程在匹配到字符“b”時(shí)便能夠得到匹配失敗的結(jié)果,從而能夠省去對(duì)對(duì)象域名中“xxxxx”這類不相關(guān)的字符進(jìn)行匹配的時(shí)間。另一方面,上述實(shí)施例的域名倒序匹配方法同時(shí)配合之前構(gòu)建名單樹時(shí)所添加的標(biāo)記樹節(jié)點(diǎn)”,能夠幫助更加快速、準(zhǔn)確的確認(rèn)對(duì)象域名是否為目標(biāo)域名的子域名,這樣在發(fā)生例如從URL中截取的對(duì)象域名字符串過長等類似情況時(shí),便能夠避免對(duì)對(duì)象域名的多余部分進(jìn)行匹配。以截取的對(duì)象域名為“XX. XXX. a. com”、目標(biāo)域名為“A. com”為例,本實(shí)施例的匹配過程在匹配到倒序第6個(gè)目標(biāo)字符”時(shí),便能夠得到匹配成功的結(jié)果,從而避免了對(duì)對(duì)象域名中“XX. XXX”的多余部分進(jìn)行匹配的過程?!D6為本申請域名過濾名單存儲(chǔ)裝置的實(shí)施例結(jié)構(gòu)圖,如圖所示,本實(shí)施例的域名過濾名單存儲(chǔ)裝置包括轉(zhuǎn)換單元61及樹生成單元62。其中,轉(zhuǎn)換單元61用于將過濾名單內(nèi)配置的域名按預(yù)定次序轉(zhuǎn)換為字符串;在一個(gè)實(shí)施例中,轉(zhuǎn)換單元61是按逆序?qū)⑦^濾名單內(nèi)配置的域名轉(zhuǎn)換為字符串。樹生成單元62是用于采用樹的方式根據(jù)所述字符串生成名單樹;在樹生成單元62生成的名單樹中,是依次將轉(zhuǎn)換單元61所得到字符串中的字符作為各級(jí)樹節(jié)點(diǎn),且樹節(jié)點(diǎn)具有第一屬性和第二屬性,第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),第二屬性用于表示字符串是否結(jié)束。在一個(gè)實(shí)施例中,樹生成單元62進(jìn)一步包括節(jié)點(diǎn)設(shè)置子單元621及節(jié)點(diǎn)補(bǔ)充子單元622。其中,節(jié)點(diǎn)設(shè)置子單元621用于采用樹的方式根據(jù)轉(zhuǎn)換單元61所得到字符串中的字符依次生成各級(jí)樹節(jié)點(diǎn);節(jié)點(diǎn)補(bǔ)充子單元622用于在根據(jù)字符串生成的最低一級(jí)樹節(jié)點(diǎn)之后添加一個(gè)與字符”對(duì)應(yīng)的標(biāo)記樹節(jié)點(diǎn),從而得到最終的名單樹。其中,最終名單樹中的樹節(jié)點(diǎn)還具有第三屬性,其用于表示是否所有子域名均符合過濾條件;且標(biāo)記樹節(jié)點(diǎn)的第三屬性的值表示所有子域名均符合過濾條件(例如,可以賦值為“true”),而名單樹中其他樹節(jié)點(diǎn)的第三屬性的值則均表示非所有子域名均符合過濾條件(例如,可以賦值為“false”)。在一個(gè)實(shí)施例中,上述節(jié)點(diǎn)設(shè)置子單元621根據(jù)轉(zhuǎn)換單元61所得到字符串生成的最低一級(jí)樹節(jié)點(diǎn)的第二屬性的值表示字符串已經(jīng)結(jié)束(例如,可以賦值為“true”),而名單樹中其他樹節(jié)點(diǎn)的第二屬性的值則均表示字符串沒有結(jié)束(例如,可以賦值為“false”)。圖7為本申請域名過濾名單匹配裝置的實(shí)施例結(jié)構(gòu)圖,本實(shí)施例的域名過濾名單匹配裝置與上述域名過濾名單存儲(chǔ)裝置實(shí)施例相對(duì)應(yīng)。在一個(gè)實(shí)施例中,本實(shí)施例的域名過濾名單匹配裝置直接與上述實(shí)施例中的域名過濾名單存儲(chǔ)裝置相連接。如圖7所示,本實(shí)施例的域名匹配裝置包括對(duì)象字符轉(zhuǎn)換單元71、字符比較單元72及屬性值確認(rèn)單元73。其中,對(duì)象字符轉(zhuǎn)換單元71用于將待匹配的域名按逆序轉(zhuǎn)換為對(duì)象字符串。接續(xù),字符比較單元72用于依次將對(duì)象字符串中的對(duì)象字符與名單樹的各級(jí)樹節(jié)點(diǎn)所對(duì)應(yīng)的目標(biāo)字符進(jìn)行比較,確認(rèn)當(dāng)前的對(duì)象字符與目標(biāo)字符是否相符,如果不相符則確定匹配失敗;如果相符則由屬性值確認(rèn)單元73確認(rèn)字符比較單元72當(dāng)前比較的樹節(jié)點(diǎn)的第三屬性的值是否表示所有子域名均符合過濾條件(例如確認(rèn)其值是否為“true”),如果是則確定匹配成功,否則由字符比較單元72繼續(xù)匹配下一對(duì)象字符,直至對(duì)象字符串中的最后一個(gè)對(duì)象字符時(shí)由屬性值確認(rèn)單元73確認(rèn)字符比較單元72當(dāng)前比較的樹節(jié)點(diǎn)的第二屬性的值是否表示字符串結(jié)束(例如確認(rèn)其值是否為“true”),如果是則確定匹配成功,否則確定匹配失敗。由上述實(shí)施例可知,一方面,本申請的域名過濾名單存儲(chǔ)裝置及域名匹配裝置各單元執(zhí)行的功能完全對(duì)應(yīng)于本申請的域名過濾名單存儲(chǔ)方法及域名匹配方法各步驟對(duì)應(yīng)的內(nèi)容;另一方面,本申請域名過濾名單存儲(chǔ)方法及域名匹配方法也可以用計(jì)算機(jī)等硬件執(zhí)行計(jì)算機(jī)可執(zhí)行程序來實(shí)現(xiàn)。雖然已參照幾個(gè)典型實(shí)施例描述了本申請,但應(yīng)當(dāng)理解,所用的術(shù)語是說明和示例性、而非限制性的術(shù)語。由于本申請能夠以多種形式具體實(shí)施而不脫離其精神或?qū)嵸|(zhì),所以應(yīng)當(dāng)理解,上述實(shí)施例不限于任何前述的細(xì)節(jié),而應(yīng)在隨附權(quán)利要求所限定的精神和范圍內(nèi)廣泛地解釋,因此落入權(quán)利要求或其等效范圍內(nèi)的全部變化和改型都應(yīng)為隨附權(quán)利要 求所涵蓋。
      權(quán)利要求
      1.一種由計(jì)算機(jī)實(shí)現(xiàn)的域名過濾名單存儲(chǔ)方法,包括以下步驟 511.將過濾名單內(nèi)配置的域名按預(yù)定次序轉(zhuǎn)換為字符串; 512.采用樹的方式根據(jù)所述字符串生成名單樹; 在所述名單樹中,所述字符串中的字符依次作為各級(jí)樹節(jié)點(diǎn),且所述樹節(jié)點(diǎn)具有第一屬性和第二屬性,所述第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),所述第二屬性用于表示所述字符串是否結(jié)束。
      2.如權(quán)利要求I所述的域名過濾名單存儲(chǔ)方法,其中,所述步驟Sll包括將所述過濾名單內(nèi)配置的域名按逆序轉(zhuǎn)換為字符串。
      3.如權(quán)利要求I或2所述的域名過濾名單存儲(chǔ)方法,其中,所述步驟Sll包括將所述過濾名單內(nèi)配置的域名轉(zhuǎn)換為全部小寫的字符串。
      4.如權(quán)利要求I或2所述的域名過濾名單存儲(chǔ)方法,其中,所述步驟S12包括 5121.采用樹的方式根據(jù)所述字符串中的字符依次生成各級(jí)樹節(jié)點(diǎn); 5122.在根據(jù)所述字符串生成的最低一級(jí)樹節(jié)點(diǎn)之后添加一個(gè)與字符”對(duì)應(yīng)的標(biāo)記樹節(jié)點(diǎn),得到所述名單樹; 其中,所述名單樹中的樹節(jié)點(diǎn)還具有第三屬性,所述第三屬性用于表示是否所有子域名均符合過濾條件;且所述標(biāo)記樹節(jié)點(diǎn)的第三屬性的值表示所有子域名均符合過濾條件,所述名單樹中其他樹節(jié)點(diǎn)的第三屬性的值表示非所有子域名均符合過濾條件。
      5.如權(quán)利要求4所述的域名過濾名單存儲(chǔ)方法,其中,所述步驟S121中根據(jù)所述字符串生成的最低一級(jí)樹節(jié)點(diǎn)的第二屬性的值表示字符串結(jié)束,所述名單樹中其他樹節(jié)點(diǎn)的第二屬性的值表示字符串未結(jié)束。
      6.如權(quán)利要求4所述的域名過濾名單存儲(chǔ)方法,其中,所述步驟S12中使用空白節(jié)點(diǎn)作為所述名單樹的根節(jié)點(diǎn),且所述空白節(jié)點(diǎn)的第一屬性的值表示指向所述字符串的第一個(gè)字符。
      7.如權(quán)利要求I所述的域名過濾名單存儲(chǔ)方法,其中, 所述步驟Sll之前還包括創(chuàng)建包括所有能夠用作域名的可用字符的數(shù)組,并對(duì)所述數(shù)組中的可用字符依次賦予數(shù)字標(biāo)識(shí); 所述步驟S12生成的名單樹中,所述樹節(jié)點(diǎn)的第一屬性用于表示指向所述當(dāng)前字符后面一個(gè)字符在所述數(shù)組中對(duì)應(yīng)的數(shù)字標(biāo)識(shí)。
      8.一種由計(jì)算機(jī)實(shí)現(xiàn)的域名過濾名單匹配方法,包括以下步驟 581.將待匹配的域名按預(yù)定次序轉(zhuǎn)換為對(duì)象字符串; 582.依次將所述對(duì)象字符串中的對(duì)象字符與名單樹的各級(jí)樹節(jié)點(diǎn)所對(duì)應(yīng)的目標(biāo)字符進(jìn)行比較,確認(rèn)當(dāng)前的對(duì)象字符與目標(biāo)字符是否相符,如果不相符則確定匹配失??; 如果相符則繼續(xù)所述步驟S82比較下一對(duì)象字符,直至確認(rèn)所述對(duì)象字符串中最后一個(gè)對(duì)象字符與對(duì)應(yīng)的目標(biāo)字符相符則確定匹配成功; 其中,所述名單樹具有由所述目標(biāo)字符構(gòu)成的所述各級(jí)樹節(jié)點(diǎn),且所述樹節(jié)點(diǎn)具有第一屬性和第二屬性,所述第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),所述第二屬性用于表示所述字符串是否結(jié)束;所述目標(biāo)字符包括將過濾名單內(nèi)配置的域名按所述預(yù)定次序轉(zhuǎn)換而成的字符串中的各個(gè)字符。
      9.一種由計(jì)算機(jī)實(shí)現(xiàn)的域名過濾名單匹配方法,包括以下步驟·591.將待匹配的域名按逆序轉(zhuǎn)換為對(duì)象字符串; ·592.依次將所述對(duì)象字符串中的對(duì)象字符與名單樹的各級(jí)樹節(jié)點(diǎn)所對(duì)應(yīng)的目標(biāo)字符進(jìn)行比較,確認(rèn)當(dāng)前的對(duì)象字符與目標(biāo)字符是否相符,如果不相符則確定匹配失??;如果相符則繼續(xù)步驟S93 ; ·593.確認(rèn)當(dāng)前比較的樹節(jié)點(diǎn)的第三屬性的值是否表示所有子域名均符合過濾條件,如果是則確定匹配成功,否則返回所述步驟S92匹配下一對(duì)象字符,直至所述對(duì)象字符串中的最后一個(gè)對(duì)象字符時(shí)繼續(xù)步驟S94 ; ·594.確認(rèn)當(dāng)前比較的樹節(jié)點(diǎn)的第二屬性的值是否表示字符串結(jié)束,如果是則確定匹配成功,否則確定匹配失?。? 其中,所述名單樹具有由所述目標(biāo)字符構(gòu)成的所述各級(jí)樹節(jié)點(diǎn),且所述樹節(jié)點(diǎn)具有第一屬性、第二屬性和第三屬性,所述第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),所述第二屬性用于表示所述字符串是否結(jié)束,所述第三屬性用于表示是否所有子域名均符合過濾條件;所述目標(biāo)字符包括將過濾名單內(nèi)配置的域名按逆序轉(zhuǎn)換而成的字符串中的各個(gè)字符以及與作為標(biāo)記樹節(jié)點(diǎn)的最低一級(jí)樹節(jié)點(diǎn)對(duì)應(yīng)的字符”;且所述標(biāo)記樹節(jié)點(diǎn)的第三屬性的值表示所有子域名均符合過濾條件,所述名單樹中其他樹節(jié)點(diǎn)的第三屬性的值表示非所有子域名均符合過濾條件。
      10.一種域名過濾名單存儲(chǔ)裝置,包括 轉(zhuǎn)換單元,用于將過濾名單內(nèi)配置的域名按預(yù)定次序轉(zhuǎn)換為字符串; 樹生成單元,用于采用樹的方式根據(jù)所述字符串生成名單樹; 在所述名單樹中,所述字符串中的字符依次作為各級(jí)樹節(jié)點(diǎn),且所述樹節(jié)點(diǎn)具有第一屬性和第二屬性,所述第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),所述第二屬性用于表示所述字符串是否結(jié)束。
      11.如權(quán)利要求10所述的域名過濾名單存儲(chǔ)裝置,其中,所述轉(zhuǎn)換單元是將所述過濾名單內(nèi)配置的域名按逆序轉(zhuǎn)換為字符串。
      12.如權(quán)利要求10或11所述的域名過濾名單存儲(chǔ)裝置,其中,所述樹生成單元包括 節(jié)點(diǎn)設(shè)置子單元,用于采用樹的方式根據(jù)所述字符串中的字符依次生成各級(jí)樹節(jié)點(diǎn); 節(jié)點(diǎn)補(bǔ)充子單元,用于在根據(jù)所述字符串生成的最低一級(jí)樹節(jié)點(diǎn)之后添加一個(gè)與字符 ”對(duì)應(yīng)的標(biāo)記樹節(jié)點(diǎn),得到所述名單樹; 其中,所述名單樹中的樹節(jié)點(diǎn)還具有第三屬性,所述第三屬性用于表示是否所有子域名均符合過濾條件;且所述標(biāo)記樹節(jié)點(diǎn)的第三屬性的值表示所有子域名均符合過濾條件,所述名單樹中其他樹節(jié)點(diǎn)的第三屬性的值表示非所有子域名均符合過濾條件。
      13.如權(quán)利要求12所述的域名過濾名單存儲(chǔ)裝置,其中,所述節(jié)點(diǎn)設(shè)置子單元根據(jù)所述字符串生成的最低一級(jí)樹節(jié)點(diǎn)的第二屬性的值表示字符串結(jié)束,所述名單樹中其他樹節(jié)點(diǎn)的第二屬性的值表示字符串未結(jié)束。
      14.一種域名過濾名單匹配裝置,包括 對(duì)象字符轉(zhuǎn)換單元,用于將待匹配的域名按預(yù)定次序轉(zhuǎn)換為對(duì)象字符串; 字符比較單元,用于依次將所述對(duì)象字符串中的對(duì)象字符與名單樹的各級(jí)樹節(jié)點(diǎn)所對(duì)應(yīng)的目標(biāo)字符進(jìn)行比較,確認(rèn)當(dāng)前的對(duì)象字符與目標(biāo)字符是否相符,如果不相符則確定匹配失敗;如果相符則繼續(xù)比較下一對(duì)象字符,直至確認(rèn)所述對(duì)象字符串中最后一個(gè)對(duì)象字符與對(duì)應(yīng)的目標(biāo)字符相符則確定匹配成功; 其中,所述名單樹具有由所述目標(biāo)字符構(gòu)成的所述各級(jí)樹節(jié)點(diǎn),且所述樹節(jié)點(diǎn)具有第一屬性和第二屬性,所述第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),所述第二屬性用于表示所述字符串是否結(jié)束;所述目標(biāo)字符包括將過濾名單內(nèi)配置的域名按所述預(yù)定次序轉(zhuǎn)換而成的字符串中的各個(gè)字符。
      15.一種域名過濾名單匹配裝置,包括對(duì)象字符轉(zhuǎn)換單元、字符比較單元、屬性值確認(rèn)單元; 所述對(duì)象字符轉(zhuǎn)換單元用于將待匹配的域名按逆序轉(zhuǎn)換為對(duì)象字符串; 所述字符比較單元用于依次將所述對(duì)象字符串中的對(duì)象字符與名單樹的各級(jí)樹節(jié)點(diǎn)所對(duì)應(yīng)的目標(biāo)字符進(jìn)行比較,確認(rèn)當(dāng)前的對(duì)象字符與目標(biāo)字符是否相符,如果不相符則確定匹配失??; 如果相符則由所述屬性值確認(rèn)單元確認(rèn)所述字符比較單元當(dāng)前比較的樹節(jié)點(diǎn)的第三屬性的值是否表示所有子域名均符合過濾條件,如果是則確定匹配成功,否則由所述字符比較單元繼續(xù)匹配下一對(duì)象字符,直至所述對(duì)象字符串中的最后一個(gè)對(duì)象字符時(shí),由所述屬性值確認(rèn)單元確認(rèn)所述字符比較單元當(dāng)前比較的樹節(jié)點(diǎn)的第二屬性的值是否表示字符串結(jié)束,如果是則確定匹配成功,否則確定匹配失敗; 其中,所述名單樹具有由所述目標(biāo)字符構(gòu)成的所述各級(jí)樹節(jié)點(diǎn),且所述樹節(jié)點(diǎn)具有第一屬性、第二屬性和第三屬性,所述第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),所述第二屬性用于表示所述字符串是否結(jié)束,所述第三屬性用于表示是否所有子域名均符合過濾條件;所述目標(biāo)字符包括將過濾名單內(nèi)配置的域名按逆序轉(zhuǎn)換而成的字符串中的各個(gè)字符以及與作為標(biāo)記樹節(jié)點(diǎn)的最低一級(jí)樹節(jié)點(diǎn)對(duì)應(yīng)的字符”;且所述標(biāo)記樹節(jié)點(diǎn)的第三屬性的值表示所有子域名均符合過濾條件,所述名單樹中其他樹節(jié)點(diǎn)的第三屬性的值表示非所有子域名均符合過濾條件。
      全文摘要
      本申請公開了一種域名過濾名單存儲(chǔ)方法,包括以下步驟將過濾名單內(nèi)配置的域名按預(yù)定次序轉(zhuǎn)換為字符串;采用樹的方式根據(jù)所述字符串生成名單樹;在所述名單樹中,所述字符串中的字符依次作為各級(jí)樹節(jié)點(diǎn),且所述樹節(jié)點(diǎn)具有第一屬性和第二屬性,所述第一屬性用于表示指向與當(dāng)前字符后面一個(gè)字符對(duì)應(yīng)的下一級(jí)樹節(jié)點(diǎn),所述第二屬性用于表示所述字符串是否結(jié)束。本申請相應(yīng)還公開一種域名過濾名單匹配方法、一種域名過濾名單存儲(chǔ)裝置及域名過濾名單匹配裝置。本申請的實(shí)施例采用樹結(jié)構(gòu)對(duì)域名的過濾名單進(jìn)行存儲(chǔ),有效地縮短了域名匹配所需的時(shí)間,從而能夠提升服務(wù)器的性能;并且樹結(jié)構(gòu)的域名過濾名單機(jī)制可以適用于任何平臺(tái),保證了準(zhǔn)確性和良好的可調(diào)試性。
      文檔編號(hào)H04L29/12GK102882987SQ20111019378
      公開日2013年1月16日 申請日期2011年7月12日 優(yōu)先權(quán)日2011年7月12日
      發(fā)明者鄧旻輝, 羅坤莉 申請人:阿里巴巴集團(tuán)控股有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1