欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種ip地址的地域信息的存儲、查詢方法及裝置的制造方法

文檔序號:9750906閱讀:663來源:國知局
一種ip地址的地域信息的存儲、查詢方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種IP地址的地域信息的存儲、查詢方法 及裝置。
【背景技術(shù)】
[0002] 為了定位IP地址對應(yīng)的地域信息,現(xiàn)有技術(shù)中,會存儲每個IP地址與地域信息的 對應(yīng)關(guān)系,如存儲IP地址1與地域信息1的對應(yīng)關(guān)系、IP地址2與地域信息2的對應(yīng)關(guān)系等?;?于此對應(yīng)關(guān)系,可以直接定位到IP地址對應(yīng)的地域信息。但是,上述存儲方式會占用大量存 儲空間,只適用于存儲性能極高的場景。
[0003] 例如,由于IPv4地址共包含32位,IPv4地址的組合會包含232(約40億)個,因此需要 存儲40億個IPv4地址與地域信息的對應(yīng)關(guān)系,若每個IPv4地址與地域信息的對應(yīng)關(guān)系占用 3個字節(jié),則40億個對應(yīng)關(guān)系將占用約12G(40億*3字節(jié))的存儲空間,這些對應(yīng)關(guān)系占用了 巨大的存儲空間。對于I Pv6地址,由于IPv6地址共包含64位,因此IPv6地址占用的存儲空間 更大。

【發(fā)明內(nèi)容】

[0004] 本發(fā)明實施例的目的在于提供一種IP地址的地域信息的存儲、查詢方法及裝置, 以減少在存儲IP地址的地域信息時占用的存儲空間。
[0005] 為達(dá)到上述目的,本發(fā)明實施例公開了一種IP地址的地域信息的存儲方法,所述 方法包括:
[0006] 從導(dǎo)入的數(shù)據(jù)源中,獲得攜帶有地域信息的IP地址值或IP地址段;
[0007] 按照預(yù)設(shè)的分段規(guī)則,將獲得的IP地址值劃分成N個子段;或?qū)@得的所述IP地址 段的首地址和末地址分別劃分成N個子段,其中,N為大于1的正整數(shù);
[0008] 對IP地址值的地域信息的存儲過程,包括:按照各個子段的前后順序,依次將各個 子段的數(shù)字分別存儲至用于存儲IP地址地域信息的多叉樹的根節(jié)點及子節(jié)點的不同元素 中,并在最末層子節(jié)點的元素中存儲所述IP地址值的地域信息;
[0009] 對IP地址段的地域信息的存儲過程,包括:
[0010] 將首地址和末地址的N個子段的數(shù)字分別進(jìn)行比較,根據(jù)比較結(jié)果、IP地址的分配 規(guī)則和子段的分段規(guī)則,將IP地址段拆分出1段或多段連續(xù)IP地址段;其中每段連續(xù)IP地址 段中至少有一個子段是連續(xù)數(shù)字;
[0011] 對于每段連續(xù)IP地址段,按照各子段的前后順序關(guān)系,依次將各個子段的數(shù)字存 儲至所述多叉樹的根節(jié)點及子節(jié)點的不同元素中,并在每個存儲所述連續(xù)數(shù)字的子節(jié)點的 元素中存儲所述IP地址值的地域信息;
[0012] 其中,根節(jié)點內(nèi)部不同元素中存儲的子段的數(shù)字不相同,且每個子節(jié)點內(nèi)部不同 元素中存儲的子段的數(shù)字不相同。
[0013] 較佳的,所述的IP地址值或IP地址段為ipv4地址值或ipv4地址段;
[0014] 所述按照預(yù)設(shè)的分段規(guī)則,將獲得的IP地址值劃分成N個子段;或?qū)@得所述IP地 址段的首地址和末地址分別劃分成N個子段,包括:
[0015] 按照ipv4地址的格式,將獲得的IP地址值劃分成4個子段;或?qū)@得所述IP地址段 的首地址和末地址分別劃分成4個子段;
[0016] 或,
[0017] 所述的IP地址值或IP地址段為ipv6地址值或ipv6地址段;
[0018] 所述按照預(yù)設(shè)的分段規(guī)則,將獲得的IP地址值劃分成N個子段;或?qū)@得所述IP地 址段的首地址和末地址分別劃分成N個子段,包括:
[0019] 按照ipv6地址的格式,將獲得的IP地址值劃分成8個子段;或?qū)@得所述IP地址段 的首地址和末地址分別劃分成8個子段。
[0020] 較佳的,所述對IP地址值的地域信息的存儲過程,具體包括:
[0021] 按照各子段的前后順序,依次獲得第i子段的數(shù)字,i為從1~N的正整數(shù);
[0022] 存儲根節(jié)點元素,包括:當(dāng)i = l時,將獲得的第一個子段的數(shù)字存儲至所述多叉樹 的根節(jié)點的第一元素中;
[0023] 存儲子節(jié)點元素,包括:當(dāng)i>l時,將獲得的第i個子段至第N個子段的數(shù)字,分別存 儲至所述多叉樹的第i-Ι層子節(jié)點的元素中,并在存儲第N個子段的數(shù)字的元素中,存儲所 述IP地址值的地域信息。
[0024] 較佳的,對IP地址段的地域信息的存儲過程,具體包括:
[0025] 將首地址和末地址進(jìn)行比較,獲得首地址和末地址數(shù)字不同的子段中,第1個子段 的序號Μ; 1〈M仝N;
[0026] 當(dāng) Μ = Ν 時:
[0027] 將IP地址段拆分為1段連續(xù)IP地址段,該連續(xù)IP地址段中第Ν個子段是連續(xù)數(shù)字;
[0028] 對拆分出的連續(xù)IP地址段,按照各子段的前后順序,依次獲得第i子段的數(shù)字,i為 從1~N的正整數(shù);
[0029] 存儲根節(jié)點元素,包括:當(dāng)i = l時,將獲得的第一個子段的數(shù)字存儲至所述多叉樹 的根節(jié)點的元素中;
[0030] 存儲子節(jié)點元素,包括:當(dāng)i>l時,將獲得的第i個子段至第M-1個子段的數(shù)字,分別 存儲至所述多叉樹的第i-Ι層子節(jié)點的元素中;在存儲所述第M-1個子段的數(shù)字的元素的下 一層子節(jié)點中,存儲所述的連續(xù)數(shù)字作為一個元素;并在該元素中存儲所述IP地址段的地 域信息;
[0031] 當(dāng)Μ關(guān)N時:
[0032]確定第Μ至第Ν個子段,均具有連續(xù)數(shù)字;
[0033] 根據(jù)IP地址的分配規(guī)則和子段的分段規(guī)則,將IP地址拆分出多段連續(xù)IP地址段; 拆分出的每段連續(xù)IP地址段中至少有一個子段是連續(xù)數(shù)字;
[0034] 對拆分出的每個連續(xù)IP地址段,分別執(zhí)行:
[0035] 按照各子段的前后順序,依次獲得第i子段的數(shù)字,i為從1~N的正整數(shù);
[0036] 存儲根節(jié)點元素,包括:當(dāng)i = l時,將獲得的第一個子段的數(shù)字存儲至所述多叉樹 的根節(jié)點的第一元素中;
[0037] 存儲子節(jié)點元素,包括:當(dāng)i>l時,判斷第i子段是否為連續(xù)數(shù)字,如果是,則將該連 續(xù)數(shù)字存儲至所述多叉樹的第i-1層子節(jié)點的元素中,并在該元素中存儲所述IP地址段的 地域信息;如果否,則將該數(shù)字存儲至所述多叉樹的第i-Ι層子節(jié)點的元素中,令i = i+Ι,返 回執(zhí)行本步驟。
[0038]較佳的,所述多叉樹中的每個節(jié)點的數(shù)據(jù)結(jié)構(gòu)為以下數(shù)據(jù)存儲結(jié)構(gòu)中的一種:
[0039] 數(shù)組存儲結(jié)構(gòu),適用于多叉樹中的根節(jié)點及子節(jié)點;
[0040] 散列存儲結(jié)構(gòu),適用于多叉樹中的根節(jié)點及子節(jié)點;
[0041] 間隔存儲結(jié)構(gòu),適用于多叉樹中的最末層子節(jié)點;
[0042] 單點存儲結(jié)構(gòu),適用于多叉樹中的最末層子節(jié)點。
[0043] 較佳的,所述按照各個子段的前后順序,依次將各個子段的數(shù)字分別存儲至用于 存儲IP地址地域信息的多叉樹的根節(jié)點及子節(jié)點的不同元素中,并在最末層子節(jié)點的元素 中存儲所述IP地址值的地域信息,包括:
[0044] 針對根節(jié)點及子節(jié)點:以散列存儲結(jié)構(gòu)存儲所述各個子段的數(shù)字,當(dāng)滿足 nv 時,將散列存儲結(jié)構(gòu)的類型轉(zhuǎn)換為數(shù)組存儲結(jié)構(gòu);其中,Sl為每個子節(jié)點中當(dāng)前已存儲的元 素數(shù),nu為每個子段的數(shù)字的取值范圍的上限值;
[0045] 針對最末層子節(jié)點:以間隔存儲結(jié)構(gòu)存儲所述各個子段的數(shù)字,當(dāng)滿足i > 〃時, m 將間隔存儲結(jié)構(gòu)的類型轉(zhuǎn)換為數(shù)組存儲結(jié)構(gòu);當(dāng)數(shù)組存儲結(jié)構(gòu)中存儲的元素占滿該節(jié)點存 儲空間時,將數(shù)組存儲結(jié)構(gòu)轉(zhuǎn)換為單點存儲結(jié)構(gòu)。
[0046] 為達(dá)到上述目的,本發(fā)明實施例公開了一種IP地址的地域信息的查詢方法,用于 查詢按照權(quán)利要求1存儲的IP地址的地域信息,包括:
[0047] 獲得待查詢的IP地址值或IP地址段;
[0048] 按照預(yù)設(shè)的分段規(guī)則,將待查詢的IP地址值劃分成N個子段,每個子段具有一個單 獨數(shù)字;或?qū)@得所述IP地址段劃分成N個子段,其中至少一個子段具有連續(xù)數(shù)字;
[0049] 獲得每個子段的單個數(shù)字或連續(xù)數(shù)字;
[0050] 從第一個子段開始,在所述多叉樹對應(yīng)的子節(jié)點中,查找存儲了與該子段的單個 數(shù)字或連續(xù)數(shù)字相同的元素,并判斷該元素中是否存儲了地域信息;當(dāng)判斷出該元素中存 儲有地域信息時,將該地域信息確定為查詢結(jié)果。
[0051] 為達(dá)到上述目的,本發(fā)明實施例公開了一種IP地址的地域信息的存儲裝置,所述 裝置包括:
[0052] IP地址獲得模塊,用于從導(dǎo)入的數(shù)據(jù)源中,獲得攜帶有地域信息的IP地址值或IP 地址段;
[0053]第一 IP地址劃分模塊,用于按照預(yù)設(shè)的分段規(guī)則,將獲得的IP地址值劃分成N個子 段;或?qū)@得的所述IP地址段的首地址和末地址分別劃分成N個子段,其中,N為大于1的正 整數(shù);
[0054]第一地域信息存儲模塊,用于按照各個子段的前后順序,依次將各個子段的數(shù)字 分別存儲至用于存儲IP地址地域信息的多叉樹的根節(jié)點及子節(jié)點的不同元素中,并在最末 層子節(jié)點的元素中存儲所述IP地址值的地域信息;
[0055]第二地域信息存儲模塊,用于將首地址和末地址的N個子段的數(shù)字分別進(jìn)行比較, 根據(jù)比較結(jié)果、IP地址的分配規(guī)則和子段的分段規(guī)則,將IP地址段拆分出1段或多段連續(xù)IP 地址段;其中每段連續(xù)IP地址段中至少有一個子段是連續(xù)數(shù)字;用于對于每段連續(xù)IP地址 段,按照各子段的前后順序關(guān)系,依次將各個子段的數(shù)字存儲至所述多叉樹的根節(jié)點及子 節(jié)點的不同元素中,并在每個存儲所述連續(xù)數(shù)字的子節(jié)點的元素中存儲所述IP地址值的地 域信息;其中,根節(jié)點內(nèi)部不同元素中存儲的子段的數(shù)字不相同,且每個子節(jié)點內(nèi)部不同元 素中存儲的子段的數(shù)字不相同。
[0056] 較佳的,所述第一IP地址劃分模塊,包括:第一劃分子模塊和第二劃分子模塊;其 中,
[0057] 所述第一劃分子模塊,用于在所述的IP地址值或IP地址段為ipv4地址值或ipv4地 址段時,按照ipv4地址的格式,將獲得的IP地址值劃分成4個子段;或?qū)@得所述IP地址段 的首地址和末地址分別劃分成4個子段;
[0058] 所述第二劃分子模塊,用于在所述的IP地址值或IP地址段為ipv6地址值或ipv6地 址段時,按照ipv6地址的格式,將獲得的IP地址值劃分成8個子段;或?qū)@得所述IP地址段 的首地址和末地址分別劃分成8個子段。
[0059] 較佳的,所述第一地域信息存儲模塊,包括:數(shù)字獲得子模塊、第一根節(jié)點存儲子 模塊和第一子節(jié)點存儲子模塊;其中,
[0060] 所述數(shù)字獲得子模塊,用于按照各子段的前后順序,依次獲得第i子段的數(shù)字,i為 從1~N的正整數(shù);
[0061] 所述第一根節(jié)點存儲子模塊,用于存儲根節(jié)點元素,包括:當(dāng)i = l時,將獲得的第 一個子段的數(shù)字存儲至所述多叉樹的根節(jié)點的第一元素中;
[0062] 所述第一子節(jié)點存儲子模塊,用于存儲子節(jié)點元素,包括:當(dāng)i>l時,將獲得的第i 個子段至第N個子段的數(shù)字,分別存儲至所述多叉樹的第i_l層子節(jié)點的元素中,并在存儲 第N個子段的數(shù)字的元素中,存儲所述IP地址值的地域信
當(dāng)前第1頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
仙居县| 镇江市| 玛沁县| 宁安市| 苍南县| 南开区| 綦江县| 大同市| 神木县| 正宁县| 陆良县| 衡南县| 建始县| 上饶市| 台北市| 博客| 贞丰县| 通州市| 时尚| 大埔县| 疏勒县| 古浪县| 缙云县| 哈巴河县| 中超| 南充市| 辉县市| 苍梧县| 宁河县| 西青区| 无极县| 凤庆县| 呼玛县| 堆龙德庆县| 阳春市| 美姑县| 白水县| 横峰县| 铜川市| 德州市| 尉氏县|