IPアドレス・ネットマスクの変換・チェック・統合・除外、国判定を簡単に。

こんな機能欲しいけど、自分で作るの面倒くさい!みたいな思いつきを
是非Twitterで意見投げてみてください。
時間は掛かるかもしれませんがコツコツ頑張るかも!?
Twitterリンクは下部)

IPアドレスから地理的位置情報(GeoIPLocation)の検索機能を公開しました。

Google or AdMax Promotion (ipvtop)

RIRデータ処理結果(状況)

ここでは5-RIR(AFRINIC, APNIC, ARIN, LACNIC, RIPE NCC)から、
取り込みを行ったグローバルIPアドレスの割当て状況データのうち、
全グローバルIPアドレスの数と比較し、
不足しているデータが存在しないかをチェックしています。
不足のIPアドレスが存在している場合には、その原因をシステム内でチェックしています。

以下の状況をご確認いただき、データの整合性の確認にご利用ください。

尚、以下の検証の流れは本システム開発時点における差異を検証したもので、
その際の説明に対して、自動取得している数値を流し込み表示をしています。
文中の斜体数字「123」は自動計算値になっています。
文章として辻褄の合わない表現になるデータ状況が発生する場合もありますのでご了承ください。

現在の整合性の状況

プロモーション

Google or AdMax Promotion (ipvpos)

以下の表が、現在システム内に取り込みを行い各データを精査した結果のIP数集計表です。

5か所のRIRで管理している国割り当てデータベースの情報と、
IANAが管理するIPv4アドレスプールの登録状況など、
様々なデータベースが連携の上、情報公開をしてくださっています。

情報の変更が発生した場合、各社のデータベースの整合性が保たれるまでには、
当然、タイムラグが発生するでしょうし、ミスもないとは言い切れません。

その為、現在のデータ状況で注意が必要な状況であるか否かを判断する材料として、
以下集計を行っています。
※結果に差異が発生していることに否定的な意見を持っている訳ではありません。

対象 集計値 備考
5-RIRデータ登録IP数(A) 3,702,260,480 5-RIRデータ登録IP数
※グローバルIP総数との差分は「-2,048」IPでした。
これには下部の不正・重複IP数を含む
5-RIRデータ不正IP数(B) 512 ※不正データ数(B1: 非グローバル) 不正データ分減数
減数対象:-3,072 IP
2,560 ※重複データ数(B2)
アドレスプール保管IP数(C) 768 (*1) 回復プール内のIP数
合計(D) 3,702,258,176 有効グローバルIP数
全グローバルIPアドレス総数(E) 3,702,258,432 基準となる数
不足数(差分)(F=E-D) 256 (*1) 登録が不明なグローバルIP数
国割り当てなしデータ数(G) 9,494,600 (*1)
国判定不可数(H=C+F+G) 9,495,624 国判定不可IP数の合計
0.2565 % 全グローバルIPに対する国判定不可割合
現在、国判定可能な割合(J) 99.7435 % RIRデータを基準とする
 

code:sc12_1

上記の各リンクをクリックすると、以下の各項目へスクロールします。

 

最新のデータ取込状況

以下は直近のデータ取込の結果と取込日時を表示しています。

現在は不足IPアドレス数が「-2,048」件 発生しています。

RIR 行数(サマリ行) 格納行数 行差異 集計IP数 gIP割合(%) 最終チェック日時 取込日時 現地時刻(参考) header行 データversion データサマリ行 タイプ 取込時点データ
afrinic
5521 5521 0 -OK! 121250304 3.2750 % 2024-10-08 22:16:12 2024-10-08 22:16:12 - timezone: Asia/Tokyo(UTC+9) 2024-10-08 17:16:12 - timezone: Indian/Mauritius(UTC+4) 2|afrinic|20241008|16684|00000000|20241008|00000 20241008 afrinic|*|ipv4|*|5521|summary ipv4 delegated-afrinic-extended-latest(size: 0.85 MB)
apnic
55357 55357 0 -OK! 889645824 24.0298 % 2024-10-08 22:08:21 2024-10-08 22:08:21 - timezone: Asia/Tokyo(UTC+9) 2024-10-08 23:08:21 - timezone: Australia/Brisbane(UTC+10) 2.3|apnic|20241008|172436||20241007|+1000 20241008 apnic|*|ipv4|*|55357|summary ipv4 delegated-apnic-extended-latest(size: 8.35 MB)
arin
76490 76490 0 -OK! 1660219136 44.8434 % 2024-10-08 22:00:27 2024-10-08 22:00:27 - timezone: Asia/Tokyo(UTC+9) 2024-10-08 09:00:27 - timezone: America/New_York(UTC-4) 2.3|arin|1728306053102|189339|19700101|20241007|-0400 1728306053102 arin|*|ipv4|*|76490|summary ipv4 delegated-arin-extended-latest(size: 12.03 MB)
lacnic
19885 19885 0 -OK! 190077696 5.1341 % 2024-10-08 22:12:12 2024-10-08 22:12:12 - timezone: Asia/Tokyo(UTC+9) 2024-10-08 10:12:12 - timezone: America/Montevideo(UTC-3) 2.3|lacnic|20241007|90858|19870101|20241004|-0300 20241007 lacnic|*|ipv4|*|19885|summary ipv4 delegated-lacnic-extended-latest(size: 4.28 MB)
ripencc
94755 94755 0 -OK! 841067520 22.7177 % 2024-10-08 22:04:28 2024-10-08 22:04:28 - timezone: Asia/Tokyo(UTC+9) 2024-10-08 15:04:28 - timezone: Europe/Amsterdam(UTC+2) 2|ripencc|1728338399|250631|19700101|20241007|+0200 1728338399 ripencc|*|ipv4|*|94755|summary ipv4 delegated-ripencc-extended-latest(size: 17.35 MB)
グローバルIP理論総数不足IP数IP合計全IP割合(%)
3,702,258,432-2,0483,702,260,480100.0001 %

code:sc12

現在はその全グローバルIPアドレスから「-2,048」個が、
RIRから未割り当てになっている状態にあります。

2018/7/4:補足
2018/07/04の更新によって偶然にも上記の未割り当て数が「0」になっていました。
しかしRIRからのデータでグローバルIPアドレス全数を網羅する事は基本的になく、
これはあくまでも偶然で、重複データ・不正データの存在によって「0」になっています。
詳細については後述の内容でご確認ください。

2018/7/6:追記
上記不足数が、負数(マイナス)表記の場合、全データ合計がグローバルIP総数を超えている事を示します。
理論上は当然起こりえませんが、RIR間でIP範囲の重複(二重登録)が発生している場合に、
このような表示になります。
重複の内容は本稿の中程でご紹介しています。

「不明IP数」が発生するメカニズム

IPv4のIPアドレスの総数〔4,294,967,296(42億9,496万7,296)〕のうち、
全グローバルIPアドレスの総数は〔3,702,258,432(37億225万8,432)〕個あります。
全体に対するグローバルIPアドレスの割合は、約86%を超えます。

そして、この不明なIPアドレスの大半は、
実際に利用されていないIPアドレスの帯域です。

回復されたアドレスプールにあるIPv4アドレス数

「IPv4アドレスプール」には回復されたとされている
IPアドレスが「768」件存在しています。

このアドレスプールに存在するIPアドレスは現在利用されていませんので、
当然、5-RIRのデータには含まれていません。

5-RIRデータに含まれないIPアドレスの大半がこのアドレスプールです。

この投稿の表や数値は自動的に更新を行っていますので、
その都度状況が変わっていきますが、

上記の「-2,048(不明IP数)」と「768(回復IP数)」が一致しているかもしれません。

普通はこれで「なんだ、足りない部分はこのアドレスプールなんだ」と結論付けてしまいます。
ですが、事情はそんなに簡単ではない場合があります。

 

データに含まれていて国割り当てなしのデータ

RIRデータの中には「国コード未設定」となっている
「国未割り当て」のデータも存在していますので、
5-RIRデータに存在していても国判定ができない範囲は存在します。

ただこれはデータ数には含まれていますので、
集計上の件数としては正常扱いとなります。

No 国コード 国名 allocated assigned available reserved allocated+assigned 合計 合計 割合(%)
1 --
0 0 2,895,616 6,598,984 0 9,494,600 0.2565 %

code:sc18

※各ステータスのIP総合計は「9,494,600」でした。

 

データに含まれていないIPアドレス範囲

その「国未割り当て」とは別で、
そもそもリストに含まれていない「IPアドレス範囲」が存在しており、
その大半がアドレスプールに回復された範囲になっています。

以下で検証しています。

以下の表は抜粋で5-RIRデータに存在しなかったIP範囲から、
アドレスプールに保管されているIP帯を除外した残りを表示しています。

特殊属性 CIDR IP範囲 範囲IP数 開始IP値 終了IP値
グローバルアドレス 192.52.193.0/24 192.52.193.0 - 192.52.193.255 256 3224682752 3224683007
不整合データ数
256

code:sc13_2

この表に集計されるIPアドレス範囲は全グローバルIPアドレスの範囲内において、
5-RIR(AFRINIC, APNIC, ARIN, LACNIC, RIPE NCC)提供データに、
現在含まれていない、かつ、回復アドレスプール(IANA 保管中IP範囲)にも存在しない
ものを表示しています。

こうした不整合状態が発生する可能性としては、
IANAと5-RIR(AFRINIC, APNIC, ARIN, LACNIC, RIPE NCC)間のデータベース同期の時差による部分が考えられます。
一定期間後にデータベースの反映が済み、こうした不整合は解消されてくるものと思います。

上記表にIPアドレスが表示されている場合には、
-2,048(不明IP数)」と「768(回復IP数)」が一致していたかもしれないですが、
差異が発生しているという事を示しています。

アドレスプールで引き算をすれば、本来は残るはずがありませんから。

 

5-RIRデータ内の「不正・重複」レコード

本来公式の提供してくるデータに不正や重複が発生する事は決していい事ではありません。

ですが最初に書いたように、データベースの整合性を担保するのは非常に大変な事です。
一時的に、重複が発生することは起こりうる事象だと思います。

2018年6月のデータで開発をしていましたが、
その際には実際にエラーデータが含まれていました。

以下の表では、5-RIRデータ内で重複があった場合、
又は、グローバルIPアドレス帯域以外のデータが存在した場合にデータが表示されます。

現時点では以下のデータが 3,072 件 存在しています。

5-RIR提供データ内の「非グローバル(又は重複)」データ一覧

以下は、5-RIR(AFRINIC, APNIC, ARIN, LACNIC, RIPE NCC)で公開されているデータの内、
非グローバルIPアドレス範囲外、又は重複範囲が含まれていた場合に表示されます。
全グローバルIP数と取込済IP総数の比較にてデータの整合性チェックを行っています。

RIR 出現行 状態 割当国 特殊属性 開始IP IP数 CIDR表記 開始IP 終了IP 重複状態
ripencc
71,055 assigned GB
グローバルアドレス
66.33.92.0 512 66.33.92.0/23 66.33.92.0 66.33.93.255
  1. CA(arin) - line:41046 --> 66.33.92.0/23 (66.33.92.0 - 66.33.93.255)
  2. GB(ripencc) - line:71055 --> 66.33.92.0/23 (66.33.92.0 - 66.33.93.255)
ripencc
79,416 assigned NL
グローバルアドレス
160.32.184.0 2,048 160.32.184.0/21 160.32.184.0 160.32.191.255
  1. US(arin) - line:57173 --> 160.32.128.0/18 (160.32.128.0 - 160.32.191.255)
  2. NL(ripencc) - line:79416 --> 160.32.184.0/21 (160.32.184.0 - 160.32.191.255)
apnic
40,687 reserved --
テストネットワーク
198.51.100.0 256 198.51.100.0/24 198.51.100.0 198.51.100.255
apnic
45,571 reserved --
テストネットワーク
203.0.113.0 256 203.0.113.0/24 203.0.113.0 203.0.113.255
合計IP数3,072

code:sc14

 

データの検証結果

グローバルIPアドレス内であるにもかかわらずデータのない帯域。
グローバルIPアドレスの国判定レコードに存在するテストネットワークに属する帯域。

2018年6月現在は、そうしたデータが紛れ込んでいました。
ここで最初の表で確認します。

対象 集計値 備考
5-RIRデータ登録IP数(A) 3,702,260,480 5-RIRデータ登録IP数
※グローバルIP総数との差分は「-2,048」IPでした。
これには下部の不正・重複IP数を含む
5-RIRデータ不正IP数(B) 512 ※不正データ数(B1: 非グローバル) 不正データ分減数
減数対象:-3,072 IP
2,560 ※重複データ数(B2)
アドレスプール保管IP数(C) 768 (*1) 回復プール内のIP数
合計(D) 3,702,258,176 有効グローバルIP数
全グローバルIPアドレス総数(E) 3,702,258,432 基準となる数
不足数(差分)(F=E-D) 256 (*1) 登録が不明なグローバルIP数
国割り当てなしデータ数(G) 9,494,600 (*1)
国判定不可数(H=C+F+G) 9,495,624 国判定不可IP数の合計
0.2565 % 全グローバルIPに対する国判定不可割合
現在、国判定可能な割合(J) 99.7435 % RIRデータを基準とする
 

集計の結果は以下のようになります。
集計結果欄の差分が「0」であれば、不足数等は正しく検知できています。

対象IP数
5-RIRデータ登録IP数(A) 3,702,260,480
5-RIRデータ不正(B1) ▲512
5-RIRデータ重複(B2) ▲2,560
アドレスプール保管(C) 768
データ不存在IP数(F) 256
全GIP数:3,702,258,432 3,702,258,432
集計結果
(グローバルIP網羅残数)
0

code:sc12_1

 

一見すると、整合性が取れていたいように見えている場合もある集計数ですが、
中に不正なIPが紛れている場合もあり、
帳尻を合せるかのように、テストネットワークが含まれている場合もあります。

 

結果的に5-RIRのデータでグローバルIPアドレスの国判定を行う上で、
現在、国判定ができないIP範囲は以下になります。

  • 「国割り当てなし」として提供されるデータ
  • RIRデータに存在しないIP範囲
  • アドレスプールに保管されているIP範囲

 

「国割り当てなし」のデータ

国割り当てなしが設定されているIP範囲については以下でご確認いただけます。

No 国コード 国名 allocated assigned available reserved allocated+assigned 合計 合計 割合(%)
1 --
0 0 2,895,616 6,598,984 0 9,494,600 0.2565 %

code:sc18

※各ステータスのIP総合計は「9,494,600」でした。

RIRデータに存在せず、アドレスプールにも存在しないデータ

特殊属性 CIDR IP範囲 範囲IP数 開始IP値 終了IP値
グローバルアドレス 192.52.193.0/24 192.52.193.0 - 192.52.193.255 256 3224682752 3224683007
不整合データ数
256

code:sc13_2

正式にアドレスプールに保管中のIP範囲

No IP範囲 CIDR 返却元RIR RIR存在 IP数 status date
1 160.20.241.0 - 160.20.241.255 160.20.241.0/24
APNIC
なし 256 RECOVERED 2012-08
2 160.20.245.0 - 160.20.245.255 160.20.245.0/24
APNIC
なし 256 RECOVERED 2012-08
3 192.47.28.0 - 192.47.28.255 192.47.28.0/24
APNIC
なし 256 RECOVERED 2012-08
合計IP数 768

code:sc26

 

単純にIPアドレスから国判定を行おうと思って何となく始めたデータ取込。
結果的に、整合性のチェックを行ってみると、完全にドツボ。

日々更新されてくるデータが、時差の影響を受けつつ、
重複したり、重複がなくなったりと状況は刻一刻と変わっていきます。

ただこれだけ検証をしているので、
足りないものは足りないと明確に判断でき、
国判定としては十分な精度だろうと思います。

 

後記

最初にご説明をさせて頂きましたが、このページの文言は、

自動取得の値以外は開発時点に利用していたRIRデータを基に、
データの不整合を検証し、問題がない事を確認する為に作成したものです。

RIRから提供されてきたデータの不整合が解消されたり、
また新たなパターンでの不整合データが発生しないとも言い切れません。

このページによる検証が不要になることがベストであるとは考えますが、
データをご活用頂く上で「信用して平気?」という部分の参考になればと思います。

 

このページの記載が全く辻褄が合わない状況な場合は、
想定外のエラーケースのデータが投入されてきたか、

単なる当サイトのバグかのどちらかになると考えます。

 

ただ、一般的にIPアドレスから国名判定のサイトさんで、
こうした内部的なデータの正確性まで公開してくれているところは少ないと感じます。

ご利用いただく上で安心して使ってもらえるようなデータとして、
そのエビデンスとしてお考えください。

本状況ページでご紹介している各検証内容の詳細は以下でご確認いただけます。

 

更新履歴情報

Ver. 更新日 更新内容
1.0.5 2019/04/30 日次更新処理の自動スケジュールの変更を実施しました。
これまで 0:01(UTC+9)より更新処理の実行を行ってまいりましたが、
APNICデータが1日早い状態で更新され差異が発生しやすい状態にありましたので、
2019/5/1以降、22:01(UTC+9)からの更新へと変更いたします。
これによって5/1 0:01~の更新は行わず、5/1 22:01~の更新へと遅延させる対応となります。
以後、日時更新は常に22:01~定期更新を実施します。
1.0.4 2018/07/08 「取込状況」一覧の取り込み日時表示がデータの取り込み有無に関わらず、
自動更新されている症状を訂正。
データ取り込み時のみ更新を行うよう修正。翌7/9処理以降、データ表示に反映予定。
1.0.3 2018/07/05 5-RIR(AFRINIC, APNIC, ARIN, LACNIC, RIPE NCC)間のデータにおいて、
重複データの表示テーブルに対して、重複状態と原因データを表示し、
元データを確認する為のリンクを追加しました。
RIR割当てIPアドレス内の「非グローバルIP/重複」データ一覧
1.0.2 2018/07/04 日次更新処理の自動実行の動作確認が取れました。
翌2018/07/05以降は自動的に処理されます。
データの整合性チェックも概ね、現在状況(データ不整合等)を適切に監視できていますので、
当面はこのままβ公開を継続します。詳細は以下リンク先をご確認ください。
RIRデータ処理結果(状況)
1.0.1 2018/07/02 β公開。
IPアドレス国割り当てデータの公開を開始しましたが、
日次データの自動取得に関して現在は手動実行です。
極力、日次更新を心掛けますが厳密には試験運用中の位置づけです。

AdMax Promotion

公開日:
最終更新日:2019/06/20

シェア頂けると新機能開発の励みになります!!

最後までお読みいただきありがとうございました。
便利!と思って頂けたらシェアを是非お願いします。
ご意見・ご批判でも感じた事を気にせずご指摘ください。

アカウント新規作成の為、是非フォローもお願いします。(無言OK)

※このページでこんな情報も一緒に見れたら便利!などの
アイディア・ご意見もお聞かせください。

また弊サイトはすべて広告費と個人の自腹にて運営・開発を行っています。
皆様、お仕事中でお忙しいことと存じますが、
ご興味がおありの広告が目に留まりましたら
広告主様のサイトもご覧いただけますと励みになります。

QRコードからもこのURLを開けます。
リンク先URL: https://ipvx.info/rir/status/


AdMax Promotion

サイト内コンテンツ
すべて展開 | すべて省略

Google or AdMax Promotion (ipvlink)

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください