亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

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

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

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


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