IPジオロケーションデータ(JSON / CSV)

著者:Lisa Farrell · 2025-11-09

IP ジオロケーションデータベースは、連続した IP 区間(ip_from ~ ip_to)を 国/地域行政区都市緯度・経度にマッピングします。これは 地域別トラフィック分岐コンプライアンス/リスク管理近接スケジューリング運用分析といった用途で活用できます。 データは IPv6IPv4 の 2 系統で個別にエクスポートされ、項目およびファイル形式は同一です。

データ構造(列の説明)

  • ip_from VARCHAR(39) NOT NULL:開始 IP(IPv4/IPv6 互換)。
  • ip_to VARCHAR(39) NOT NULL:終了 IP(IPv4/IPv6 互換)。
  • country_code CHAR(2):ISO 3166-1 Alpha-2(例:USCN)。
  • region VARCHAR(100):州/省/第一級行政区。
  • city VARCHAR(100):都市名。
  • latitude DECIMAL(9,5):緯度。
  • longitude DECIMAL(9,5):経度。
テーブル作成 SQL(MySQL 例)
CREATE TABLE geoip_ranges (
  ip_from      VARCHAR(39)  NOT NULL,
  ip_to        VARCHAR(39)  NOT NULL,
  country_code CHAR(2),
  region       VARCHAR(100),
  city         VARCHAR(100),
  latitude     DECIMAL(9,5),
  longitude    DECIMAL(9,5),
  PRIMARY KEY (ip_from, ip_to)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

オンラインダウンロード

各プロトコルスタック(IPv6 / IPv4)で、JSON (.gz)CSV (.gz)SQL (.gz) の 3 形式を提供します。

提供元 タイプ 形式 ダウンロード 説明
IPIN IPv6 JSON (.gz) ダウンロード IPv6 区間 → 位置情報(JSON 配列)。
IPIN IPv6 CSV (.gz) ダウンロード 標準 CSV(ヘッダー付き)。ETL/表計算に最適。
IPIN IPv6 SQL (.gz) ダウンロード テーブル作成 + 一括 INSERT 同梱。MySQL へ直輸入可。
IPIN IPv4 JSON (.gz) ダウンロード IPv4 区間 → 位置情報(JSON 配列)。
IPIN IPv4 CSV (.gz) ダウンロード 標準 CSV(ヘッダー付き)。ETL/表計算に最適。
IPIN IPv4 SQL (.gz) ダウンロード テーブル作成 + 一括 INSERT 同梱。MySQL へ直輸入可。

注:配布ファイルはすべて .gz 形式です。gunzip で解凍するか、アプリでストリームとして直接処理できます。

コマンドラインでの高速ダウンロード

curl

# IPv6
curl -fL -OJ 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.json.gz'
curl -fL -OJ 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.csv.gz'
curl -fL -OJ 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.sql.gz'

# IPv4
curl -fL -OJ 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.json.gz'
curl -fL -OJ 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.csv.gz'
curl -fL -OJ 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.sql.gz'

wget

# サーバー側のファイル名を自動採用(--content-disposition)
# IPv6
wget --content-disposition 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.json.gz'
wget --content-disposition 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.csv.gz'
wget --content-disposition 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.sql.gz'

# IPv4
wget --content-disposition 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.json.gz'
wget --content-disposition 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.csv.gz'
wget --content-disposition 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.sql.gz'

# 保存名を指定 + 再開ダウンロード
wget -c -O ipv6_ip_location.json.gz 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.json.gz'
wget -c -O ipv6_ip_location.csv.gz  'https://ipin.io/exports/20251028_204109/ipv6_ip_location.csv.gz'
wget -c -O ipv6_ip_location.sql.gz  'https://ipin.io/exports/20251028_204109/ipv6_ip_location.sql.gz'
wget -c -O ipv4_ip_location.json.gz 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.json.gz'
wget -c -O ipv4_ip_location.csv.gz  'https://ipin.io/exports/20251028_204109/ipv4_ip_location.csv.gz'
wget -c -O ipv4_ip_location.sql.gz  'https://ipin.io/exports/20251028_204109/ipv4_ip_location.sql.gz'

aria2c(マルチスレッド)

# IPv6
aria2c -x16 -s16 -k1M -o ipv6_ip_location.json.gz 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.json.gz'
aria2c -x16 -s16 -k1M -o ipv6_ip_location.csv.gz  'https://ipin.io/exports/20251028_204109/ipv6_ip_location.csv.gz'
aria2c -x16 -s16 -k1M -o ipv6_ip_location.sql.gz  'https://ipin.io/exports/20251028_204109/ipv6_ip_location.sql.gz'

# IPv4
aria2c -x16 -s16 -k1M -o ipv4_ip_location.json.gz 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.json.gz'
aria2c -x16 -s16 -k1M -o ipv4_ip_location.csv.gz  'https://ipin.io/exports/20251028_204109/ipv4_ip_location.csv.gz'
aria2c -x16 -s16 -k1M -o ipv4_ip_location.sql.gz  'https://ipin.io/exports/20251028_204109/ipv4_ip_location.sql.gz'

PowerShell

# IPv6
Invoke-WebRequest -Uri "https://ipin.io/exports/20251028_204109/ipv6_ip_location.json.gz" -OutFile "ipv6_ip_location.json.gz"
Invoke-WebRequest -Uri "https://ipin.io/exports/20251028_204109/ipv6_ip_location.csv.gz"  -OutFile "ipv6_ip_location.csv.gz"
Invoke-WebRequest -Uri "https://ipin.io/exports/20251028_204109/ipv6_ip_location.sql.gz"  -OutFile "ipv6_ip_location.sql.gz"

# IPv4
Invoke-WebRequest -Uri "https://ipin.io/exports/20251028_204109/ipv4_ip_location.json.gz" -OutFile "ipv4_ip_location.json.gz"
Invoke-WebRequest -Uri "https://ipin.io/exports/20251028_204109/ipv4_ip_location.csv.gz"  -OutFile "ipv4_ip_location.csv.gz"
Invoke-WebRequest -Uri "https://ipin.io/exports/20251028_204109/ipv4_ip_location.sql.gz"  -OutFile "ipv4_ip_location.sql.gz"

ヒント:取得ファイルは .gz の圧縮形式です。gunzip や展開ツールで解凍するか、プログラム内でストリームとして直接読み込めます。

形式の説明

JSON

配列形式。各要素は ip_fromip_tocountry_coderegioncitylatitudelongitude を含みます。

[
  {
    "ip_from": "2400:cb00::",
    "ip_to":   "2400:cb00:ffff:ffff:ffff:ffff:ffff:ffff",
    "country_code": "US",
    "region": "California",
    "city": "Los Angeles",
    "latitude": 34.05460,
    "longitude": -118.24400
  }
]
CSV

先頭行はヘッダー。カンマ/二重引用符を含むフィールドは RFC 4180 に準拠してエスケープ済みです。

ip_from,ip_to,country_code,region,city,latitude,longitude
1.0.0.0,1.0.0.255,AU,Queensland,South Brisbane,-27.47480,153.01700
SQL

テーブル作成と一括 INSERT 文を含み、MySQL へそのままインポート可能です。

-- テーブル定義は上記参照
INSERT INTO geoip_ranges
(ip_from, ip_to, country_code, region, city, latitude, longitude) VALUES
('1.0.0.0','1.0.0.255','AU','Queensland','South Brisbane',-27.47480,153.01700);

使い方(クイックスタート)

  1. 用途に応じて IPv6 または IPv4 の JSON / CSV / SQL を選択してダウンロード。
  2. 解凍してデータベースへ取り込み(またはアプリで直接パース)。
  3. 国/地域・行政区・都市・緯度経度を用いて分岐やコンプライアンス方針を実装。距離を加味した近接スケジューリング(粗粒度)も可能。
  4. 日次/週次などのスケジュールで上書き更新し、データの鮮度を維持。

補足

  • IPv6/IPv4 は同一の列定義を使用し、カバーするアドレス空間のみが異なります。
  • 緯度・経度および行政区は概位置推定のための情報であり、正確な住所を示すものではありません。プライバシーとコンプライアンスを順守してください。
  • 高性能な検索が必要な場合、IPv4 は 32 ビット整数レンジへ変換し、IPv6 はプレフィックスツリー/区間木または専用インデックスの利用を推奨します。