一種多媒體終端及基于內核實現(xiàn)的dns攔截方法【
技術領域:
】[0001]本發(fā)明涉及信息通訊領域,尤其涉及一種多媒體終端及基于內核實現(xiàn)的DNS攔截方法。【
背景技術:
】[0002]隨著互聯(lián)網(wǎng)技術的不斷發(fā)展,網(wǎng)絡傳播已經(jīng)廣泛應用于生活的方方面面,并對傳統(tǒng)電視媒體的生存和發(fā)展造成了強大的沖擊。目前,國內無論是公交車或者是長途大巴車,都在反復播放一些過時,無法選擇的節(jié)目,有些長途大巴車上甚至幾個月都不換視頻節(jié)目,播放一些很老的影片。乘客根本沒有選擇余地的被動收看,毫無樂趣可言。[0003]隨著現(xiàn)今科技的發(fā)展,互聯(lián)網(wǎng)普及到社會的每個角落。乘客希望不但需要便捷的交通工具,更希望在旅途上能輕松的打發(fā)乘車無聊的時間。車載多媒體終端是在滿足無線商業(yè)化需求的同時,提供可定制的品牌廣告認證頁面和有效的3G/4G網(wǎng)絡,還可以利用WIFI局域網(wǎng),打造一個WIFI娛樂廣告平臺。運營商可以把電影、電視、音樂、娛樂、咨詢等內容上傳到多媒體終端的本地存儲。用戶無需安裝任何軟件,通過簡單認證方式,就可以在公交、長途大巴、火車等移動場合通過多媒體終端讓智能手機、平板電腦以及其他WIFI上網(wǎng)終端輕松上網(wǎng),選擇播放喜歡的媒體內容。[0004]目前,當用戶通過多媒體終端訪問外網(wǎng)時,在連接多媒體終端的WIFI后,還需要進行手機號碼認證,目前,市場上大部分是基于iptables應用層開發(fā)的DNS攔截,例如,當用戶訪問外網(wǎng)數(shù)據(jù)時,首先由Iptables判斷有無放行,在已放行時,按照正常的流程請求DNS數(shù)據(jù);在未放行時,攔截DNS數(shù)據(jù),并重定向到本地DNSmasq的5353端口,DNSmasq將所訪問外網(wǎng)的域名解析成本地門戶的IP地址。但是,這種方式會造成DNS緩存的問題,而且,DNS解析會有個TTL緩存時間,在這個緩存時間內,不會再次請求DNS解析?!?br/>發(fā)明內容】[0005]本發(fā)明要解決的技術問題在于,針對現(xiàn)有技術的上述存在DNS緩存問題的缺陷,提供一種多媒體終端及基于內核實現(xiàn)的DNS攔截方法,不會存在DNS緩存問題。[0006]本發(fā)明解決其技術問題所采用的技術方案是:構造一種基于內核實現(xiàn)的DNS攔截方法,當用戶通過車載多媒體終端的WIFI訪問外網(wǎng)數(shù)據(jù)時,內核Netfilter模塊進行以下步驟:[0007]當用戶請求訪問外網(wǎng)數(shù)據(jù)時,攔截所述用戶的DNS請求包;[0008]根據(jù)放行數(shù)據(jù)鏈表判斷是否向所述用戶放行所述外網(wǎng)數(shù)據(jù),其中,所述放行數(shù)據(jù)鏈表用于緩存已放行用戶的標識信息;[0009]在判斷未放行時,構造指向本地門戶地址的DNS回應包,并返回所述用戶。[0010]進一步地,還包括:[0011]監(jiān)聽應用層是否有socket數(shù)據(jù),并在有socket數(shù)據(jù)時,根據(jù)用戶空間發(fā)送的操作指令在所述放行數(shù)據(jù)鏈表中增加或刪除用戶的標識信息。[0012]進一步地,在判斷放行時,按照正常流程請求DNS數(shù)據(jù)。[0013]進一步地,構造指向本地門戶地址的DNS回應包的步驟包括:[0014]在所述DNS請求包的DNS回答字段中添加本地門戶地址,并重新封包。[0015]本發(fā)明還構造一種車載多媒體終端,包括內核Netfilter模塊,所述內核Netfilter模塊包括:[0016]攔截單元,用于當用戶請求訪問外網(wǎng)數(shù)據(jù)時,攔截所述用戶的DNS請求包;[0017]判斷單元,用于根據(jù)放行數(shù)據(jù)鏈表判斷是否向所述用戶放行所述外網(wǎng)數(shù)據(jù),其中,所述放行數(shù)據(jù)鏈表用于緩存已放行用戶的標識信息;[0018]構造單元,用于在判斷未放行時,構造指向本地門戶地址的DNS回應包,并返回所述用戶。[0019]進一步地,所述內核Netfilter模塊還包括:[0020]鏈表修改單元,用于監(jiān)聽應用層是否有socket數(shù)據(jù),并在有socket數(shù)據(jù)時,根據(jù)用戶空間發(fā)送的操作指令在所述放行數(shù)據(jù)鏈表中增加或刪除用戶的標識信息。[0021]進一步地,所述內核Netfilter模塊還包括:[0022]DNS處理單元,用于在判斷放行時,按照正常流程請求DNS數(shù)據(jù)。[0023]進一步地,所述構造單元,用于通過在所述DNS請求包的DNS回答字段中添加本地門戶地址并重新封包來構造DNS回應包。[0024]實施本發(fā)明的技術方案,由于通過內核Netfilter篡改DNS數(shù)據(jù),使得纂改后的DNS數(shù)據(jù)指向本地門戶,相比通過dnsamsq將DNS解析到本地門戶,可解決DNS緩存問題?!靖綀D說明】[0025]下面將結合附圖及實施例對本發(fā)明作進一步說明,附圖中:[0026]圖1是本發(fā)明基于內核實現(xiàn)的DNS攔截方法實施例一的流程圖;[0027]圖2是本發(fā)明車載多媒體終端的內核Netfilter模塊實施例一的邏輯圖;[0028]圖3是本發(fā)明車載多媒體終端的內核Netfilter模塊實施例二的邏輯圖。【具體實施方式】[0029]圖1是本發(fā)明基于內核實現(xiàn)的DNS攔截方法實施例一的流程圖,在該實施例中,當用戶通過車載多媒體終端的WIFI訪問外網(wǎng)數(shù)據(jù)時,內核Netfilter模塊進行以下步驟:[0030]S1.當用戶請求訪問外網(wǎng)數(shù)據(jù)時,攔截所述用戶的DNS請求包;[0031]S2.根據(jù)放行數(shù)據(jù)鏈表判斷是否向所述用戶放行所述外網(wǎng)數(shù)據(jù),若是,則執(zhí)行步驟S4;若否,則執(zhí)行步驟S3;其中,所述放行數(shù)據(jù)鏈表用于緩存已放行用戶的標識信息;[0032]S3.構造指向本地門戶地址的DNS回應包,并返回所述用戶。在該步驟中,優(yōu)選地,可通過以下方式來構造DNS回應包:在所述DNS請求包的DNS回答字段中添加本地門戶地址,并重新封包;[0033]S4.按照正常流程請求DNS數(shù)據(jù)。[0034]實施該實施例的技術方案,由于通過內核Netfilter篡改DNS數(shù)據(jù),使得纂改后的DNS數(shù)據(jù)指向本地門戶,可解決DNS緩存問題。[0035]在上述實施例的基礎上,進一步地,當用戶連接車載多媒體終端的WIFI時,進行以下步驟:[0036]監(jiān)聽應用層是否有socket數(shù)據(jù),該socket數(shù)據(jù)是用戶空間netlink發(fā)送過來的消息,需要判斷該用戶的標識信息(例如為ip地址)是否為認證過的標識信息;[0037]在有socket數(shù)據(jù)時,根據(jù)用戶空間發(fā)送的操作指令在所述放行數(shù)據(jù)鏈表中增加或刪除用戶的標識信息。[0038]圖2是本發(fā)明車載多媒體終端的內核Netfilter模塊實施例一的邏輯圖,該實施例的車載多媒體終端的內核Netfilter模塊包括攔截單元11、判斷單元12和構造單元13。而且,在該實施例中,攔截單元11用于當用戶請求訪問外網(wǎng)數(shù)據(jù)時,攔截所述用戶的DNS請求包。判斷單元12用于根據(jù)放行數(shù)據(jù)鏈表判斷是否向所述用戶放行所述外網(wǎng)數(shù)據(jù),其中,放行數(shù)據(jù)鏈表用于緩存已放行用戶的標識信息。構造單元13用于在判斷未放行時,構造指向本地門戶地址的DNS回應包,并返回所述用戶。優(yōu)選地,構造單元13用于通過在所述DNS請求包的DNS回答字段中添加本地門戶地址并重新封包來構造DNS回應包。[0039]圖3是本發(fā)明車載多媒體終端的內核Netfilter模塊實施例二的邏輯圖,該實施例的內核Netfilter模塊相比圖2所示的實施例,所不同的是,還包括DNS處理單元14和鏈表修改單元15,其中,DNS處理單元14用于在判斷放行時,按照正常流程請求DNS數(shù)據(jù)。鏈表修改單元15用于監(jiān)聽應用層是否有socket數(shù)據(jù),并在有socket數(shù)據(jù)時,根據(jù)用戶空間發(fā)送的操作指令在所述放行數(shù)據(jù)鏈表中增加或刪除用戶的標識信息。[0040]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的權利要求范圍之內?!局鳈囗棥?.一種基于內核實現(xiàn)的DNS攔截方法,其特征在于,當用戶通過車載多媒體終端的WIFI訪問外網(wǎng)數(shù)據(jù)時,內核Netfilter模塊進行以下步驟:當用戶請求訪問外網(wǎng)數(shù)據(jù)時,攔截所述用戶的DNS請求包;根據(jù)放行數(shù)據(jù)鏈表判斷是否向所述用戶放行所述外網(wǎng)數(shù)據(jù),其中,所述放行數(shù)據(jù)鏈表用于緩存已放行用戶的標識信息;在判斷未放行時,構造指向本地門戶地址的DNS回應包,并返回所述用戶。2.根據(jù)權利要求1所述的基于內核實現(xiàn)的DNS攔截方法,其特征在于,還包括:監(jiān)聽應用層是否有socket數(shù)據(jù),并在有socket數(shù)據(jù)時,根據(jù)用戶空間發(fā)送的操作指令在所述放行數(shù)據(jù)鏈表中增加或刪除用戶的標識信息。3.根據(jù)權利要求1所述的基于內核實現(xiàn)的DNS攔截方法,其特征在于,在判斷放行時,按照正常流程請求DNS數(shù)據(jù)。4.根據(jù)權利要求1所述的基于內核實現(xiàn)的DNS攔截方法,其特征在于,構造指向本地門戶地址的DNS回應包的步驟包括:在所述DNS請求包的DNS回答字段中添加本地門戶地址,并重新封包。5.—種車載多媒體終端,包括內核Netfilter模塊,其特征在于,所述內核Netfilter豐吳塊包括:攔截單元,用于當用戶請求訪問外網(wǎng)數(shù)據(jù)時,攔截所述用戶的DNS請求包;判斷單元,用于根據(jù)放行數(shù)據(jù)鏈表判斷是否向所述用戶放行所述外網(wǎng)數(shù)據(jù),其中,所述放行數(shù)據(jù)鏈表用于緩存已放行用戶的標識信息;構造單元,用于在判斷未放行時,構造指向本地門戶地址的DNS回應包,并返回所述用戶。6.根據(jù)權利要求5所述的車載多媒體終端,其特征在于,所述內核Netfilter模塊還包括:鏈表修改單元,用于監(jiān)聽應用層是否有socket數(shù)據(jù),并在有socket數(shù)據(jù)時,根據(jù)用戶空間發(fā)送的操作指令在所述放行數(shù)據(jù)鏈表中增加或刪除用戶的標識信息。7.根據(jù)權利要求5所述的車載多媒體終端,其特征在于,所述內核Netfilter模塊還包括:DNS處理單元,用于在判斷放行時,按照正常流程請求DNS數(shù)據(jù)。8.根據(jù)權利要求5所述的車載多媒體終端,其特征在于,所述構造單元,用于通過在所述DNS請求包的DNS回答字段中添加本地門戶地址并重新封包來構造DNS回應包。【專利摘要】本發(fā)明公開了一種多媒體終端及基于內核實現(xiàn)的DNS攔截方法,當用戶通過車載多媒體終端的WIFI訪問外網(wǎng)數(shù)據(jù)時,內核Netfilter模塊進行以下步驟:當用戶請求訪問外網(wǎng)數(shù)據(jù)時,攔截所述用戶的DNS請求包;根據(jù)放行數(shù)據(jù)鏈表判斷是否向所述用戶放行所述外網(wǎng)數(shù)據(jù),其中,所述放行數(shù)據(jù)鏈表用于緩存已放行用戶的標識信息;在判斷未放行時,構造指向本地門戶地址的DNS回應包,并返回所述用戶。實施本發(fā)明的技術方案,由于通過內核Netfilter篡改DNS數(shù)據(jù),使得纂改后的DNS數(shù)據(jù)指向本地門戶,可解決DNS緩存問題。【IPC分類】H04L29/12【公開號】CN105306616【申請?zhí)枴緾N201510606777【發(fā)明人】李利民【申請人】深圳前海華視移動互聯(lián)有限公司【公開日】2016年2月3日【申請日】2015年9月22日