本發(fā)明專利技術公開了一種IP地址列表匹配方法及裝置,涉及網(wǎng)絡通信技術領域,所述方法包括以下步驟:S1:獲取IP地址列表,所述IP地址列表為雙向鏈表結構,所述雙向鏈表中各節(jié)點按照IP地址的大小順序依次連接;S2:將待匹配IP地址與所述IP地址列表進行匹配,以獲得匹配結果。本發(fā)明專利技術通過將IP地址列表設置為雙向鏈表結構,所述雙向鏈表中各節(jié)點按照IP地址的大小順序依次連接,由于雙向鏈表中各節(jié)點使用的是非連續(xù)內(nèi)存,從而提高了網(wǎng)絡設備的內(nèi)存使用效率,并且排除了分配一大段連續(xù)的存儲空間失敗帶來的風險。
【技術實現(xiàn)步驟摘要】
IP地址列表匹配方法及裝置
本專利技術涉及網(wǎng)絡通信
,特別涉及一種IP地址列表匹配方法及裝置。
技術介紹
網(wǎng)絡設備在進行網(wǎng)絡通信時,經(jīng)常需要將某一IP地址與IP地址列表進行匹配(例如,網(wǎng)絡設備為負載均衡設備時,負載均衡設備需要將IP地址與互聯(lián)網(wǎng)服務提供商ISP的網(wǎng)絡地址列表進行匹配,以選擇對應的ISP)。由于現(xiàn)有的IP地址列表匹配方法為了保證匹配效率,需要占用網(wǎng)絡設備的內(nèi)存中一大段連續(xù)的存儲空間,從而降低了網(wǎng)絡設備的內(nèi)存使用效率,并且存在分配一大段連續(xù)的存儲空間失敗帶來的風險。
技術實現(xiàn)思路
(一)要解決的技術問題本專利技術要解決的技術問題是:如何提高網(wǎng)絡設備的內(nèi)存使用效率,并且排除分配一大段連續(xù)的存儲空間失敗帶來的風險。(二)技術方案為解決上述技術問題,本專利技術提供了一種IP地址列表匹配方法,所述方法包括以下步驟:S1:獲取IP地址列表,所述IP地址列表為雙向鏈表結構,所述雙向鏈表中各節(jié)點按照IP地址的大小順序依次連接;S2:將待匹配IP地址與所述IP地址列表進行匹配,以獲得匹配結果。其中,步驟S1包括:S101:接收所有合法IP地址段,并將所述合法IP地址段中存在交集的IP地址進行合并處理;S102:將合并處理后的IP地址按照大小進行排序,將IP地址作為節(jié)點按照排序結果生成IP地址列表。其中,步驟S102中,按照從小到大進行排序。其中,步驟S2包括:S201:獲取所述IP地址列表的長度N,所述N為大于1的整數(shù),所述IP地址列表的第一個節(jié)點為起始節(jié)點,所述IP地址列表的最后一個節(jié)點為末尾節(jié)點;S202:選擇所述IP地址列表中的一個節(jié)點作為當前節(jié)點;S203:設所述當前節(jié)點的序號為X,所述當前節(jié)點與所述待匹配IP地址進行匹配,若匹配成功,則直接結束流程,否則執(zhí)行步驟S204;S204:判斷查找方向是否發(fā)生變化過,若是,則執(zhí)行步驟S208,否則執(zhí)行步驟S205;S205:判斷所述待匹配IP地址是否在所述當前節(jié)點之前,若是,則執(zhí)行步驟S206,否則執(zhí)行步驟S207;S206:判斷當前節(jié)點的序號是否為偶數(shù),若是,則記錄當前查找方向為逆向,將當前節(jié)點作為新的末尾節(jié)點,并將所述IP地址列表中的第個節(jié)點作為新的當前節(jié)點,返回步驟S203;若否,則將所述IP地址列表中的第X-1個節(jié)點作為新的當前節(jié)點,返回步驟S203;S207:判斷當前節(jié)點的序號是否為偶數(shù),若是,則將所述IP地址列表中的第X+1個節(jié)點作為新的當前節(jié)點,返回步驟S203;若否,則記錄當前查找方向為正向,將當前節(jié)點作為新的起始節(jié)點,并將所述IP地址列表中的第個節(jié)點作為新的當前節(jié)點,返回步驟S203,當不為整數(shù)時,則對采用向上取整或四舍五入取整;S208:沿當前查找方向?qū)λ鯥P地址列表進行順序查找,直至查找到與所述待匹配IP地址相匹配的節(jié)點、起始節(jié)點或末尾節(jié)點時,結束流程。其中,步驟S202中,選擇所述IP地址列表中的第個節(jié)點作為當前節(jié)點,當不為整數(shù)時,則對采用向上取整或四舍五入取整。本專利技術還公開了一種IP地址列表匹配裝置,所述裝置包括:列表獲取模塊,用于獲取IP地址列表,所述IP地址列表為雙向鏈表結構,所述雙向鏈表中各節(jié)點按照IP地址的大小順序依次連接;地址匹配模塊,用于將待匹配IP地址與所述IP地址列表進行匹配,以獲得匹配結果。其中,所述列表獲取模塊包括:合并處理子模塊,用于接收所有合法IP地址段,并將所述合法IP地址段中存在交集的IP地址進行合并處理;排序生成子模塊,用于將合并處理后的IP地址按照大小進行排序,將IP地址作為節(jié)點按照排序結果生成IP地址列表。其中,排序生成子模塊中,按照從小到大進行排序。其中,地址匹配模塊包括:長度獲取子模塊,用于獲取所述IP地址列表的長度N,所述N為大于1的整數(shù),所述IP地址列表的第一個節(jié)點為起始節(jié)點,所述IP地址列表的最后一個節(jié)點為末尾節(jié)點;選擇子模塊,用于選擇所述IP地址列表中的一個節(jié)點作為當前節(jié)點;匹配子模塊,用于設所述當前節(jié)點的序號為X,所述當前節(jié)點與所述待匹配IP地址進行匹配;查找方向判斷子模塊,用于判斷查找方向是否發(fā)生變化過;方位判斷子模塊,用于判斷所述待匹配IP地址是否在所述當前節(jié)點之前;第一奇偶判斷子模塊,用于判斷當前節(jié)點的序號是否為偶數(shù),若是,則記錄當前查找方向為逆向,將當前節(jié)點作為新的末尾節(jié)點,并將所述IP地址列表中的第個節(jié)點作為新的當前節(jié)點;若否,則將所述IP地址列表中的第X-1個節(jié)點作為新的當前節(jié)點;第二奇偶判斷子模塊,用于判斷當前節(jié)點的序號是否為偶數(shù),若是,則將所述IP地址列表中的第X+1個節(jié)點作為新的當前節(jié)點;若否,則記錄當前查找方向為正向,將當前節(jié)點作為新的起始節(jié)點,并將所述IP地址列表中的第個節(jié)點作為新的當前節(jié)點,當不為整數(shù)時,則對采用向上取整或四舍五入取整;順序查找子模塊,用于沿當前查找方向?qū)λ鯥P地址列表進行順序查找,直至查找到與所述待匹配IP地址相匹配的節(jié)點、起始節(jié)點或末尾節(jié)點。其中,所述選擇子模塊中,選擇所述IP地址列表中的第個節(jié)點作為當前節(jié)點,當不為整數(shù)時,則對采用向上取整或四舍五入取整。(三)有益效果本專利技術通過將IP地址列表設置為雙向鏈表結構,所述雙向鏈表中各節(jié)點按照IP地址的大小順序依次連接,由于雙向鏈表中各節(jié)點使用的是非連續(xù)內(nèi)存,從而提高了網(wǎng)絡設備的內(nèi)存使用效率,并且排除了分配一大段連續(xù)的存儲空間失敗帶來的風險。附圖說明圖1是本專利技術一種實施方式的IP地址列表匹配方法的流程圖;圖2是圖1所示的IP地址列表匹配方法中步驟S2的具體流程圖;圖3a是長度N=4時,IP地址列表的結構示意圖;圖3b是長度N=5時,IP地址列表的結構示意圖;圖3c是長度N=6時,IP地址列表的結構示意圖;圖3d是長度N=7時,IP地址列表的結構示意圖;圖3e是長度N=8時,IP地址列表的結構示意圖;圖4是本專利技術一種實施方式的IP地址列表匹配裝置的結構框圖;圖5是圖4所示的IP地址列表匹配裝置中地址匹配模塊的結構框圖。具體實施方式下面結合附圖和實施例,對本專利技術的具體實施方式作進一步詳細描述。以下實施例用于說明本專利技術,但不用來限制本專利技術的范圍。圖1是本專利技術一種實施方式的IP地址列表匹配方法的流程圖;參照圖1,所述方法包括以下步驟:S1:獲取IP地址列表,所述IP地址列表為雙向鏈表結構(鏈表中的所有IP地址都以無符號整數(shù)形式保存),所述雙向鏈表中各節(jié)點按照IP地址的大小順序依次連接;S2:將待匹配IP地址與所述IP地址列表進行匹配,以獲得匹配結果。對IP地址列表進行匹配查找之前,需要先生成IP地址列表,IP地址列表可以通過命令行鍵入或者是通過地址列表文件導入,優(yōu)選地,步驟S1包括:S101:接收所有合法IP地址段,并將所述合法IP地址段中存在交集的IP地址進行合并處理;由于IP地址列表是由大量的合法IP地址段組成的,當每一個合法IP地址段被接收后,在被存儲到鏈表結構前都會與已經(jīng)存在的節(jié)點進行交集合并處理,如果新接收的地址段存在于現(xiàn)有某一節(jié)點的地址范圍內(nèi)則無需處理;如果與現(xiàn)有某一節(jié)點地址范圍存在交集則做合并處理;如果將現(xiàn)有的兩個或多個節(jié)點包括在內(nèi)則多合并處理。S102:將合并處理后的IP地址按照大小進行排序,將IP地址作為節(jié)點按照排序結果生成IP地址列表。為便于匹配IP地址,本實施方式中,步驟S本文檔來自技高網(wǎng)...

【技術保護點】
一種IP地址列表匹配方法,其特征在于,所述方法包括以下步驟:S1:獲取IP地址列表,所述IP地址列表為雙向鏈表結構,所述雙向鏈表中各節(jié)點按照IP地址的大小順序依次連接;S2:將待匹配IP地址與所述IP地址列表進行匹配,以獲得匹配結果。
【技術特征摘要】
1.一種IP地址列表匹配方法,其特征在于,所述方法包括以下步驟:S1:獲取IP地址列表,所述IP地址列表為雙向鏈表結構,所述雙向鏈表中各節(jié)點按照IP地址的大小順序依次連接;S2:將待匹配IP地址與所述IP地址列表進行匹配,以獲得匹配結果;其中,步驟S2包括:S201:獲取所述IP地址列表的長度N,所述N為大于1的整數(shù),所述IP地址列表的第一個節(jié)點為起始節(jié)點,所述IP地址列表的最后一個節(jié)點為末尾節(jié)點;S202:選擇所述IP地址列表中的一個節(jié)點作為當前節(jié)點;S203:設所述當前節(jié)點的序號為X,所述當前節(jié)點與所述待匹配IP地址進行匹配,若匹配成功,則直接結束流程,否則執(zhí)行步驟S204;S204:判斷查找方向是否發(fā)生變化過,若是,則執(zhí)行步驟S208,否則執(zhí)行步驟S205;S205:判斷所述待匹配IP地址是否在所述當前節(jié)點之前,若是,則執(zhí)行步驟S206,否則執(zhí)行步驟S207;S206:判斷當前節(jié)點的序號是否為偶數(shù),若是,則記錄當前查找方向為逆向,將當前節(jié)點作為新的末尾節(jié)點,并將所述IP地址列表中的第個節(jié)點作為新的當前節(jié)點,返回步驟S203;若否,則將所述IP地址列表中的第X-1個節(jié)點作為新的當前節(jié)點,返回步驟S203;S207:判斷當前節(jié)點的序號是否為偶數(shù),若是,則將所述IP地址列表中的第X+1個節(jié)點作為新的當前節(jié)點,返回步驟S203;若否,則記錄當前查找方向為正向,將當前節(jié)點作為新的起始節(jié)點,并將所述IP地址列表中的第個節(jié)點作為新的當前節(jié)點,返回步驟S203,當不為整數(shù)時,則對采用向上取整或四舍五入取整;S208:沿當前查找方向?qū)λ鯥P地址列表進行順序查找,直至查找到與所述待匹配IP地址相匹配的節(jié)點、起始節(jié)點或末尾節(jié)點時,結束流程。2.如權利要求1所述的方法,其特征在于,步驟S1包括:S101:接收所有合法IP地址段,并將所述合法IP地址段中存在交集的IP地址進行合并處理;S102:將合并處理后的IP地址按照大小進行排序,將IP地址作為節(jié)點按照排序結果生成IP地址列表。3.如權利要求2所述的方法,其特征在于,步驟S102中,按照從小到大進行排序。4.如權利要求3所述的方法,其特征在于,步驟S202中,選擇所述IP地址列表中的第個節(jié)點作為當前節(jié)點,...
【專利技術屬性】
技術研發(fā)人員:劉建興,
申請(專利權)人:漢柏科技有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。